假如有這樣一個數組。arr = [12,34,45,46,36,58,36,59],現在要遍歷該數組。
方法1:以前我們可能會這樣做:
for(var i=0;i<arr.length;i++){ console.log(arr[i]+"\n") }
方法2:自ES5發布后,我們可以使用內置的forEach方法來遍歷數組。
arr.forEach(function(val){ console.log(val+"\n") })
這段代碼看起來簡單,然而有些缺陷,就是不能使用break語句中斷循環,也不能使用return語句返回到外層函數。
方法3:於是我們很容易想到使用for-in來遍歷數組
for(var index in arr){ console.log(arr[index]+"\n") }
然而這樣也會有一點問題,在這段代碼中,賦給 index 的值不是實際的數字,而是字符串“0”、 “1”、 “2”,此時很可能在無意之間進行字符串算數計算,例如:“2”+1==“21”,這給編碼帶來極大的不便。還有,在某些情況下,這段代碼可能按照隨機順序遍歷數組元素。
方法4:下面我的ES6方法登場了,就是使用for-of方法。
for(var val of arr){ console.log(val+"\n") }
是不是很簡潔,而且也不存在上述方法那樣的缺陷。
