es6 for of的使用方法

for of 和 for in 在數組和對象中的區別

在數組中的用法:

const arr = [2, 3, 5, 4, 5, 2, 2];
for(let i of arr){
console.log(i) //打印出來的是value 2,3,5,4,2,2
}
for(let i in arr){
console.log(i) //打印出來的是下標 0,1,2,3,4,5,6
}es6

在對象中的用法:

const obj = {'a':1,'b':2,'c':3}
for(let i in obj){數組

console.log(i)  //打印出來的是key  a,b,c

}
for(let i of obj){函數

console.log(i)  //打印出來的是obj is not iterable,這是由於在es6中object沒有規定默認的屬性iterable

}
解決辦法:
使用Object.keys方法將對象的鍵名生成一個數組,而後遍歷這個數組。
for (let i of Object.keys(obj)) {
console.log(key + ': ' + obj[key]);
}
另外一個方法是使用 Generator 函數將對象從新包裝一下。
function* entries(obj) {
for (let key of Object.keys(obj)) {code

yield [key, obj[key]];

}
}對象

for (let [key, value] of entries(obj)) {
console.log(key, '->', value);
}
// a -> 1
// b -> 2
// c -> 3it

相關文章
相關標籤/搜索