我可以为 Array.prototype.some() 回调函数传递参数吗?

4

看一下这段代码:

var array = [0, 1];

var even = function(element, index, array, considerZeroEven) {
  // checks whether an element is even
  if (element === 0)
    return considerZeroEven;

  return element % 2 === 0;
};

console.log(array.some(even)); // Here I should do the trick...

是否可以传递considerZeroEven参数?

我看到应该使用thisArg并在其中做一些不好的事情,但我认为这不是一个好主意,并且查看MDN上的 polyfill看起来它只会传递元素的值,元素的索引和正在遍历的数组对象,因此不能做更多的事情。

1个回答

8
你可以对considerZeroEven想要的值进行闭包,并只将函数作为回调,而不使用thisArg

var array = [0, 1],
    even = function (considerZeroEven) {
        return function(element, index, array) {
            return element === 0
                ? considerZeroEven
                : element % 2 === 0;
        };
    };

console.log(array.some(even(false)));


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接