for in 遍历对象无序问题

307 阅读1分钟

偶然发现,用for in 遍历Map对象出来的顺序竟然跟原Map对象里数据顺序不一样。我的解决方案是先把key取出进行排序,然后根据key的排序取出value。

let colArr=[]
let keyArr=[]
for(let col in row){  
    keyArr.push(col)    //此时取出的key是无序的
}
keyArr.sort()    //对取出的key数组进行排序,row为一行数据
for(let i=0;i<keyArr.length;i++){  
    for(let col in row){    
        if(keyArr[i]===col){      
           colArr.push(row[col]);    
        }  
    }
}