问题不是那么相关,但我想要实现的是下一个:
var some_array = [Modernizr.json, Modernizr.csstransforms];
var tests = function() {
for (var i = some_array .length - 1; i >= 0; i--) {
...
};
return Modernizr.json && Modernizr.csstransforms;
};
我一直在思考那些我试图向你展示的逻辑,但我无法弄明白。基本上我需要循环测试数组并在测试之间返回一个布尔操作,更具体地说我想要获取数组[Modernizr.json, Modernizr.csstransforms]
并且我想返回Modernizr.json && Modernizr.csstransforms
等等(如果有的话)数组中的更多值。)
答案 0 :(得分:1)
如果要检查数组中的所有值是否都为真,可以执行以下操作:
var some_array = [Modernizr.json, Modernizr.csstransforms];
var tests = function() {
var result = true;
for (var i = some_array .length - 1; i >= 0; i--) {
result = result && some_array[i];
};
return result;
};
答案 1 :(得分:1)
使用reduce
:
return some_array.reduce(function(a, b){ return a && b; });
或reduceRight
如果你想向后迭代。
如果您想在遇到假值时断开循环,您还可以使用every
。
答案 2 :(得分:0)
根据@ Bergi的回答,我找到了一个很好的解决方案,我找到了什么:
some_array.reduce(function(previousValue, currentValue, index, array){
return previousValue && currentValue;
});