every()與some()方法都是JS中數組的迭代方法。
every(callback)是對數組中的每一項運行給定函數,如果該函數對每一項返回true,則返回true
some(callback)是對數組中每一項運行指定函數,如果該函數對任一項返回true,則返回true。
我其實在看完這兩個函數的介紹時,心里就在想,這兩個會不會像邏輯運算符||和&&一樣是短路操作?
運行如下代碼便知分曉:
先來看下every的調用結果
<span style="font-family:Courier New;font-size:14px;">
<script type="text/javascript">
var arr = [ 1, 2, 3, 4, 5, 6 ];
console.log( arr.every( function( value, index, array ){
console.log( 'value=' + value+ ',index='+index+',array='+array );
return value> 3;
}));
</script>
</span>
運行結果如下:
再來看下some的調用結果
<span style="font-family:Courier New;font-size:14px;">
<script type="text/javascript">
var arr = [ 1, 2, 3, 4, 5, 6 ];
console.log( arr.some( function( value, index, array ){
console.log( 'value=' + value+ ',index='+index+',array='+array );
return value> 3;
}));
</script>
</span>
運行結果如下: