一个从数据库取回来的对象数组:var data = [{a:1},{a:2}]
for…in遍历
for(let i=0; i < data.length; i++){
let opt = data[i]
for(let key in opt){
console.log(key)
}
}
for…in语句以任意顺序遍历一个对象的可枚举属性。对于每个不同的属性,语句都会被执行。
如果一个对象的属性不是可枚举属性,那么这个属性就会被for…in迭代出来,包括继承的可枚举属性
所以当你遍历时会出现很多莫名其妙的字段:
原因
从数据库取回来的对象数组数据,是指向一个地址(堆栈问题),它里面拥有很多可枚举属性什么的
解决:遍历前使用深拷贝处理
var data = JSON.parse(JSON.stringify([{a:1},{a:2}]))
进行上面处理后,再遍历就正常了~~