检查函数是否对数组中的任何项返回true
Check if a function returns true for any item in an array
我想检查一个函数是否对JavaScript函数中数组中的任何项返回true?顺便说一句,我只是一个幼小的
不幸的是,没有骰子,也许我不够具体。。。如果fun标识数组为满,则我希望any返回true;如果数组为空,则希望any返回false。
function any(arr, fun){
for (var i=0; i<arr.length; i++) {
if (loop(fun)=== 'false') //<--- this is what I'm not sure about
return false;
if (arr.length>0);
return true;
}
}
您有一个JS数组函数,它被称为some。你应该这样使用它:
arr.some(fun);
如果数组中的任何元素的fun(x)等于true,则返回true。
您可以使用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);
您需要调用函数并检查它的结果(不确定循环应该做什么,但它似乎对任何事情都没有帮助):
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 :)
}
您也可以使用Array.every:
arr.every(function(item) {
return fun(item);
});
我想到了这个: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));
基本上是
有一个布尔值的占位符,用于跟踪条件是否满足
遍历传递给函数的数组
- 如果函数返回true,占位符bool将更改为true
- 在函数的末尾,在bool上返回函数的结果
相关文章:
- AJAX:$_GET不返回任何值
- document.styleSheets不返回任何内容
- 在解析对象.save()中;没有返回任何原因
- json字符串的Javascript帖子:没有任何东西传入或返回
- PhantomJs在控制台中发出http请求时不会返回任何状态
- 为什么这个array.filter总是不返回任何内容
- 从数组JavaScript中删除并返回最后n个项的最快方法
- 我想遍历一个对象数组,我不想要任何重复项
- 如果URL中有任何字符串变体匹配,则返回true
- 将额外的行附加到jqueryui自动完成(即使自动完成没有任何匹配项)
- IE8DOM转换XML,并且不从jQueryfind()或filter()返回任何内容
- 将数组中的重复项转换为唯一项,而不删除Javascript中的任何项
- 测试数组中的任何项是否返回 true
- Element.prop('scrollHeight') 为 Angular.js 中的不同列表项返回相同的值
- 哪个查询选择器可以找到与另一个数组中的任何项匹配的任何数组项
- 使用递归为数组中的每个项返回一个值
- 检查函数是否对数组中的任何项返回true
- 查找与另一个数组中的任何项匹配的数组中的项
- 当数组中的任何项被更改时,如何使Ember计算属性更新
- 指定了itemprop属性,但该元素不是任何项的属性