javascript - JS对象的属性覆盖问题
本文介绍了javascript - JS对象的属性覆盖问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
推入数组时候对象变掉了
rows是用node-mysql取到的结果。
for(var i of rows){
var obj = {};
var ar = [];
if(i.name){
obj.field_name = '1002';
obj.field_value = '微信';
obj.virtualAccount = i.id;
console.log(obj);
ar.push(obj);
// obj = {}; 加上这行才正常
}
if (i.intro) {
obj.field_name = '1001';
obj.field_value = 'QQ';
obj.virtualAccount = i.id;
console.log(obj);
ar.push(obj);
}
arr.push(ar);
}
console.log(arr);
这是运行结果。为什么微信没有push进去呢
解决方案
你代码里不是自己写了么,被注释掉的那行加上就好了。
这里面还是对象引用的问题,ar.push(obj);
第一个if里边push了微信的进去了,但是第二个if修改了obj的属性,所以第一个push进去的obj的属性就改变了,所以最终就是都变成第二次push进去的那个了
这篇关于javascript - JS对象的属性覆盖问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文