ES6引入了一个新的循环语法,即for...of。
对于三重循环:
for (let i = 0; i < list.length; i++) {
for(var key in list[i]){
for(var j = 0;j < dataDict.length;j++){
if (dataDict[j].COLUMN_NAME == key) {
//转换时间
if(key.indexOf("Date")!==-1){
list[i][key] = timestampToTime(list[i][key])
}
list[i][key] +="^"+dataDict[j].COMMENTS
}
}
}
}
我们可以修改为:
for(const item of list){
for(var key in item){
for({ COLUMN_NAME,COMMENTS } of dataDict){
if(COLUMN_NAME == key){
if(key.indexOf("Date")!==-1){
item[key] = timestampToTime(item[key])
}
item[key] +="^" + COMMENTS
}
}
}
}
从中我们可以看出:
1.使用for...of可以代替传统的带索引的循环,去掉索引值。
2.在for...of中可以进行解构,从而简化代码。
3.使用for...of后代码内容更容易被理解。
ps:要在for...of中获取索引值可以使用
for(let [index,item] of arr.entries()){
//do Stuff
}
来实现。