顯然,它確實存在:Array.prototype.every
。從MDN 例子:
function isBigEnough(element, index, array) {
return (element >= 10);
}
var passed = [12, 5, 8, 130, 44].every(isBigEnough);
// passed is false
passed = [12, 54, 18, 130, 44].every(isBigEnough);
// passed is true
這意味着你將不必手動將其寫。不過,這個功能在IE8上不起作用。
但是,如果您想要一個也適用於IE8-的函數,則可以使用手動實現,即 Or the polyfill shown on the mdn page。
手冊:
function all(array, condition){
for(var i = 0; i < array.length; i++){
if(!condition(array[i])){
return false;
}
}
return true;
}
用法:
all([1, 2, 3, 4], function(e){return e < 3}) // false
all([1, 2, 3, 4], function(e){return e > 0}) // true
@FlorianMargaine:哦DERP,我不知道這個問題的。將它添加到我的答案中,現在清理其餘的部分。 – Cerbrus
值得一提的是:還有相反的情況:'Array.prototype.some',它檢查*任何*值是否通過測試。 –