Javascript some()方法和附加参数

Javascript some()方法和附加参数,javascript,jquery,arrays,Javascript,Jquery,Arrays,我需要检查数组中是否至少有一个元素通过了条件。 条件取决于一个变量 例如,我使用的是这样的东西: 函数条件(以前的值、索引、数组){ 返回AdditionalValue.indexOf(previousValue)+previousValue.indexOf(AdditionalValue)

我需要检查数组中是否至少有一个元素通过了条件。 条件取决于一个变量

例如,我使用的是这样的东西:

函数条件(以前的值、索引、数组){
返回AdditionalValue.indexOf(previousValue)+previousValue.indexOf(AdditionalValue)<-1;
}
我不知道如何将“additonalValue”参数传递给
数组.some(condition)
表达式

我正在使用jQuery,因此,欢迎使用另一种方法


有没有办法将参数传递给数组。some()方法?

使用闭包看起来是最简单的解决方案:

var additonalValue = 79;
var r = myArray.some(function(previousValue) {
    return additonalValue.indexOf(previousValue) + previousValue.indexOf(additonalValue) < -1;
});
var additonalValue=79;
var r=myArray.some(函数(previousValue){
返回AdditionalValue.indexOf(previousValue)+previousValue.indexOf(AdditionalValue)<-1;
});
函数
some()
接受数组形式的附加参数,该数组在回调中设置为
this
,因此可以通过这种方式传递许多值:

var arr = ['one', 'two', 'three'];
var val = 'two';

var r = arr.some(function(value) {
    return this[0] == value;
}, [val]);

如果要将附加参数传递给
some
方法中的函数,可以使用
bind

var myArray = ['a', 'b', 'c', 'd'];
var otherValue = 'e';
function someFunction(externalParameter, element, index, array) {
    console.log(externalParameter, element, index, array);
    return (element == externalParameter);
}
myArray.some(someFunction.bind(null, otherValue));
这将给你:

e a 0 ["a", "b", "c", "d"]
e b 1 ["a", "b", "c", "d"]
e c 2 ["a", "b", "c", "d"]
e d 3 ["a", "b", "c", "d"]
false

为什么不通过闭包传递它呢?如果要检查数组中的所有值是否匹配,是否应该使用
every()
?对不起,我错了,我需要检查是否有任何元素传递了条件。我将修改这个问题。谢谢:)@dystroy,你建议它怎么做?那么一旦它通过了,你希望返回什么?你命名第一个参数
previousValue
的事实有点令人不安,因为
有些人的行为。