var result = {};
result.node_data = [];
{
result.link_total = 0;
result.link_start_seq = 2;
{
for (let i = 0; i < 2; i++) {
var one_data = {};
one_data.mac_addr = 1*i;
one_data.tei = 2*i;
console.log(one_data);
result.node_data.push(one_data);
}
}
}
console.log(result);
正常运行结果
{ mac_addr: 0, tei: 0 }
{ mac_addr: 1, tei: 2 }
{
node_data: [ { mac_addr: 0, tei: 0 }, { mac_addr: 1, tei: 2 } ],
link_total: 0,
link_start_seq: 2
}
如果我把var one_data = {}; 放到for外面
var result = {};
var one_data = {};
result.node_data = [];
{
result.link_total = 0;
result.link_start_seq = 2;
{
for (let i = 0; i < 2; i++) {
one_data.mac_addr = 1*i;
one_data.tei = 2*i;
console.log(one_data);
result.node_data.push(one_data);
}
}
}
console.log(result);
运行结果完全不一样,每次push 都是最后一次的结果 这个是为啥呢 我是写c语言的,来学nodejs 初学者 麻烦指导指导
{ mac_addr: 0, tei: 0 }
{ mac_addr: 1, tei: 2 }
{
node_data: [ { mac_addr: 1, tei: 2 }, { mac_addr: 1, tei: 2 } ],
link_total: 0,
link_start_seq: 2
}