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

Cir*_*i94 2 javascript

看一下这段代码:

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...
Run Code Online (Sandbox Code Playgroud)

是否可以传递给thinkZeroEven参数?

我看到我应该使用thisArg并在其中进行一些肮脏的操作,但是我认为这不是一个好主意,而在MDN上查看polyfill似乎只会传递元素的值,元素的索引,并且遍历了数组对象,因此无法执行其他操作。

Nin*_*olz 5

您可以关闭所需的值,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)));
Run Code Online (Sandbox Code Playgroud)