2012-10-21 53 views
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等(如果有更多的值在數組中)。如果你想向後遍歷

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

reduceRight

+0

'tests'不是一個數組? – PeeHaa

+0

你的意思是'var tests'?不,它不是,應該是? – Roland

+0

我不知道tbh。在目前的狀態下,我不知道你在找什麼。你能否澄清你的問題? – PeeHaa

回答

1

使用reduce

如果要在遇到虛假值時打破循環,也可以使用every

+0

「reduce」在IE8中不受支持,而在較低的「 – pckill

+0

」中,如果我有兩個以上的值,如果有15個,該怎麼辦?上述說明仍然有效嗎? – Roland

+1

@Roland:'some_array'可以是任意長度的數組(應該至少減少2) – Bergi

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; 
}; 
0

我發現我一直在尋找的,基於@ BERGI的回答一個很好的解決方案:

some_array.reduce(function(previousValue, currentValue, index, array){ 
    return previousValue && currentValue; 
}); 
+0

是的,這正是我的解決方案... – Bergi

+0

@Bergi - 謝謝,那就是我一直在尋找的(: – Roland