forEach介紹
objArr.forEach(function (value) {
console.log(value);
});複製代碼
foreach 方法沒辦法使用 break 語句跳出循環,或者使用return從函數體內返回
for-in介紹
for(var index in objArr){
console.log(objArr[index])
}複製代碼
以上代碼會出現的問題:
- 1.index 值 會是字符串(String)類型
- 2.循環不只會遍歷數組元素,還會遍歷任意其餘自定義添加的屬性,如,objArr上面包含自定義屬性,objArr.name,那此次循環中也會出現此name屬性
- 3.某些狀況下,上述代碼會以隨機順序循環數組
for-in循環設計之初,是給普通以字符串的值爲key的對象使用的。而非數組。
for-of介紹
for(let value of objArr){
console.log(value)
}複製代碼
- 1.能夠避免全部 for-in 循環的陷阱
- 2.不一樣於 forEach(),能夠使用 break, continue 和 return
- 3.for-of 循環不單單支持數組的遍歷。一樣適用於不少相似數組的對象
- 4.它也支持字符串的遍歷
- 5.for-of 並不適用於處理原有的原生對象
for-of 遍歷 Set
var uniqueWords = new Set(words);
for (var word of uniqueWords) {
console.log(word);
}複製代碼
for-of 遍歷 Map
for (var [key, value] of phoneBookMap) {
console.log(key + "'s phone number is: " + value);
}複製代碼
Map是鍵值對組成,須要用到 Es6新特性解構
for-of 遍歷原生對象
// 輸出對象自身能夠枚舉的值
for (var key of Object.keys(someObject)) {
console.log(key + ": " + someObject[key]);
}複製代碼