for...of的使用

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        
}

来实现。

posted @ 2020-08-07 14:37  罗毅豪  阅读(301)  评论(0编辑  收藏  举报