📜  如何编写一个接受谓词和数组的程序,如 Array.filter(),但仅在 JavaScript 中 pred(x) === false 时保留 x?

📅  最后修改于: 2022-05-13 01:56:55.746000             🧑  作者: Mango

如何编写一个接受谓词和数组的程序,如 Array.filter(),但仅在 JavaScript 中 pred(x) === false 时保留 x?

JavaScript 中的谓词与返回truefalse谓词maths 相同。

谓词就像一个函数,用于确定传递的参数是否满足给定条件。谓词仅返回truefalse

在这篇文章中,让我们看看使用 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;
          }
      }
}

示例 1:以下函数接受一个数组和谓词,并返回满足pred(x)===false的结果数组。在此函数中,谓词返回true,如果数组元素是偶数,则返回false 。输出应该是奇数。

Javascript


Javascript


Javascript


输出:

The resultant array is 1,3,5,7

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

句法:

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

示例 2:

Javascript


输出:

The resultant array is 1,3,5,7

示例 3:以下函数使用谓词通过将参数作为数组和谓词传递给函数来计算数组中 8 的频率。

Javascript


输出:

The frequency of 8 is 3