1. 程式人生 > >關於JS陣列中every與some兩者迭代方法探索

關於JS陣列中every與some兩者迭代方法探索

    every()與some()方法都是JS中陣列的迭代方法。every()是對陣列中的每一項執行給定函式,如果該函式對每一項返回true,則返回true。some()是對陣列中每一項執行指定函式,如果該函式對任一項返回true,則返回true。

    我其實在看完這兩個函式的介紹時,心裡就在想,這兩個會不會像邏輯運算子||和&&一樣是短路操作?

執行如下程式碼便知分曉:

<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( item, index, array ){
		console.log( 'item=' + item + ',index='+index+',array='+array );
		return item > 3;
	}));

	console.log( arr.every( function( item, index, array ){
		console.log( 'item=' + item + ',index='+index+',array='+array );
		return item > 3;
	}));

</script></span>

執行結果如下:


   可以看到,some方法是碰到一個返回true的值時候就返回了,並沒有繼續往下執行,而every也一樣,第一個值就是一個false,所以後面也沒有進行下去的必要了,就直接返回結果了。