我想检查函数是否为JavaScript中函数内的数组中的任何项返回true?我只是一棵树。
不幸的是没有骰子,也许我不够具体......如果有趣的话确定数组是完整的,我希望任何返回true,如果数组是空的则返回false。
preg_match_all()
答案 0 :(得分:2)
你有一个JS数组函数,它被称为some。你应该像这样使用它:
arr.some(fun);
如果fun(x)对于arr中的任何元素等于true,它将返回true。
答案 1 :(得分:1)
您可以使用Array.prototype.filter()
根据返回true或false的函数减少元素。
var func = function(item) {
return item === 'hello';
}
document.write(!!['hello','world','foo','bar'].filter(func).length + '<br>');
document.write(!!['world','foo','bar'].filter(func).length);
答案 2 :(得分:1)
你需要调用该函数并检查它的结果(不确定应该做什么循环,但它似乎没有任何帮助):
function any(arr, fun) {
for (var i = 0; i < arr.length; i++) {
if (fun(arr[i]) === false) { //assuming the function returns a boolean
return false;
}
}
return true; // if we get trough the entire array they must've all been true :)
}
&#13;
您也可以使用Array.every:
arr.every(function(item) {
return fun(item);
});
&#13;
答案 3 :(得分:0)
我想出了这个:http://jsfiddle.net/rbroden/k5qq4ngy/
var arr = [
false,
false,
false,
true,
false];
function fun(arrElement){
return arrElement;
}
function any(array){
var bool = false;
for(i = 0; i < array.length; i++){
if(fun(array[i])) bool = true;
}
return bool;
}
alert(any(arr));
基本上
有一个布尔句点占位符,可以跟踪条件是否符合
遍历传递给函数的数组