JavaScript 使用一个函数与数组一起使用谓词的工作方式

JavaScript 使用一个函数与数组一起使用谓词的工作方式

如何编写一个程序,以谓词和数组为参数,类似于Array.filter(),但仅在pred(x) === false时保留x(使用JavaScript)?

在JavaScript中,谓词与数学中的谓词是相同的,它返回true或false。

谓词就像一个函数,用于确定传入的参数是否满足给定条件。谓词只返回true或false。

在本文中,让我们看看在JavaScript中使用一个函数与数组一起使用谓词的工作方式。

语法:

function predicate(argument) 
{
     if(condition_satisfied)
     return true;
     else
     return false;
}
function using_predicate(array, predicate)
{
      for(elements in array )
      {
          if (predicate is satisfied)
          {
            code for satisfied condition;
          }
          else
          {
            code for else condition;
          }
      }
}
JavaScript

示例: 以下函数接受一个数组和一个判断条件,并返回满足该条件的数组。 pred(x)===false 。在这个函数中,如果数组元素是偶数,则判断条件返回 true ,否则返回 false 。输出应该是奇数。

Javascript

<script> 
    function pred(x) { 
        if (x % 2 == 0) 
            return true; 
        else
            return false; 
    } 
      
    function implementPredicate(array, pred) { 
        var res = []; 
        for (let i = 0; i < array.length; i++) { 
            if (pred(array[i]) === false) { 
                res.push(array[i]); 
            } 
        } 
        return res; 
    } 
    var array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8]; 
    var final = implementPredicate(array, pred); 
    console.log("The resultant array is "+final); 
</script>
JavaScript

输出:

The resultant array is 1,3,5,7
JavaScript

使用带有filter()方法的谓词:

语法:

function predicate(argument) 
{
     if(condition_satisfied)
     return true;
     else
     return false;
}
array.filter(predicate);
JavaScript

示例: 这个示例使用了filter()方法。

JavaScript

<script> 
    function pred(x) { 
        if (x % 2 == 0) 
            return false; 
        else
            return true; 
    } 
      
    var array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8]; 
    var final = array.filter(pred); 
    console.log("The resultant array is "+final); 
</script>
JavaScript

输出:

The resultant array is 1,3,5,7
JavaScript

示例: 下面的函数使用谓词来统计数组中数字8的频率,将数组和谓词作为参数传递给函数。

JavaScript

<script> 
    function pred(x) { 
        if (x == 8) 
            return true; 
        else
            return false; 
    } 
    function implementPredicate(array, pred) { 
        var res = 0; 
        for (let i = 0; i < array.length; i++) { 
            if (pred(array[i]) === true) { 
                res++; 
            } 
        } 
        return res; 
    } 
      
      
    var array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8]; 
    var final = implementPredicate(array, pred) 
    console.log("The frequency of 8 is " + final); 
</script>
JavaScript

输出:

The frequency of 8 is 3
JavaScript

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册