0

它不是那么相关的问题,但我想要实现的是下一个:

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等等(如果数组中有更多值)。

4

3 回答 3

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;
};
于 2012-10-21T13:24:43.140 回答
1

使用reduce

return some_array.reduce(function(a, b){ return a && b; });

或者reduceRight如果你想向后迭代。

如果你想在遇到虚假值时打破循环,你也可以使用every.

于 2012-10-21T13:35:21.283 回答
0

根据@Bergi 的回答,我找到了一个很好的解决方案:

some_array.reduce(function(previousValue, currentValue, index, array){
    return previousValue && currentValue;
});
于 2012-10-21T14:03:53.923 回答