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

时间:2018-08-02 07:22:48

标签: 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...

是否可以传递到thinkZeroEven参数?

我看到我应该使用thisArg并在其中做一些肮脏的事情,但是我认为这不是一个好主意,看着the polyfill on MDN看起来它只会传递元素的值,即索引元素,以及遍历数组对象,因此无能为力。

1 个答案:

答案 0 :(得分:4)

您可以关闭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)));