如何在JavaScript中測試值x與謂詞函式,並返回fn(x)或x?


測試值x與謂詞函式意味著檢查x是否滿足特定條件。如果x滿足特定條件,我們需要使用名為“fn”的函式對x執行某些操作,並將其作為函式引數傳遞。否則,我們需要返回x的值本身。

語法

使用者可以按照以下語法測試值x與謂詞函式,並在JavaScript中返回fn(x)或x。

let result = predicate(x) ? operation(x) : x; 

在上面的語法中,我們使用了三元運算子來測試值是否滿足predicate()函式,並根據predicate()函式的返回值返回operation(x)或x值。

示例

在下面的示例中,我們建立了operation()函式,它返回數字的平方。predicate()函式檢查x的值是否大於5,並根據條件返回true或false。

在為result變數賦值時,我們檢查x是否通過了predicate()函式的測試。如果是,我們將operation()函式的返回值賦給“result”變數;否則,賦予x本身。

<html>
<body>
   <h3>Testing a value x <i> against predicate function and returns fn(x) or x </i> in JavaScript</h3>
   <div id = "content"> </div>
   <script>
      let content = document.getElementById("content");
      let x = 10;
      function operation(x) {
         return x * x; 
      }
      function predicate(x) {
         return x > 5;
      }
      let result = predicate(x) ? operation(x) : x;
      content.innerHTML = "The original value of x is " + x + " and the result is " + result + ".<br>";
      let result2 = predicate(3) ? operation(3) : 3;
      content.innerHTML += "The original value of x is " + 3 + " and the result is " + result2 + ".<br>";
   </script>
</body>
</html>

示例

我們在下面的示例中建立了各種謂詞和操作函式。operation1()函式返回除以2後的值。operation2()函式透過將負數轉換為正數來返回值。

使用取模運算子,predicate1()函式檢查x是否能被2整除。predicate2()函式檢查x是否小於0。

我們可以將謂詞和操作函式作為test函式的引數傳遞,並在test函式內執行它們。這樣,我們可以使用不同的謂詞函式測試x的值,並使用不同的操作函式對x執行不同的任務。

<html>
<body> 
   <h3>Testing a value x <i> against predicate function and returns fn(x) or x </i> in JavaScript</h3>
   <div id = "content"> </div>
   <script>
      let content = document.getElementById("content");
      function operation1(x) {
         return x / 2;
      }
      function predicate1(x) {
         return x % 2 == 0;
      }
      function operation2(x) {
         return Math.abs(x);
      }
      function predicate2(x) {
         return x < 0;
      }
      function test(x, predicate, operation) {
         content.innerHTML += "The original value of x is " + x + "<br>";
         let res = predicate(x) ? operation(x) : x;
         content.innerHTML += "The value of x after the test is " + res + "<br>";
      }
      test(6, predicate1, operation1);
      test(-6, predicate2, operation2);
   </script>
</body> 
</html>

使用者學習瞭如何測試x的值與謂詞函式,並根據謂詞函式的返回值返回fn(x)或x。使用者需要做的就是使用三元運算子。在條件部分使用謂詞函式。如果條件為真,則返回操作函式的計算值;否則,返回x的值本身。

更新於:2023年3月9日

68 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.