推入数组时候对象变掉了
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进去的那个了