Javascript过滤部分操作

时间:2011-02-28 00:58:54

标签: javascript

函数“filter”返回一个数组[0,4],但我不明白它是如何得到的。你能解释“偏”吗?它是内置功能吗?我假设“op”应用“>”运算符到数组中的数字。因此,由于5大于0,它将被添加到数组“result”中。但是“部分”如何运作呢?

function filter(test, array) {
  var result = [];
  forEach(array, function (element) {
    if (test(element))
      result.push(element);
  });
  return result;
}

show(filter(partial(op[">"], 5), [0, 4, 8, 12]));

1 个答案:

答案 0 :(得分:1)

在这种情况下,partial采用2个输入和1个值的函数。称它们为f(x,y)和a。它返回一个输入g(z)的函数。当你调用g(b)时,它返回f(a,b)。因此它的部分应用。过滤器需要一个输入的功能,而'<'是一个2输入函数。

Partial是一个函数,它接受一个函数并返回一个函数,该函数预先设置一个(或多个)输入。