几个小时以来,我一直在尝试解决这个问题,但我似乎确实无法成功。我正在尝试创建一个 JSON 字符串,如下所示,但是在传递变量的值时obj
到变量j
我得到的数组仅包含该循环的最后一个结果。
而不是得到如下结果:
[{machine: "hi"...}
{machine: "2"....}]
我正进入(状态:
[{machine: "2"...}
{machine: "2"....
and keep going with same value}]
我究竟做错了什么?
var return_json = function(){
var j = [];
var obj = {};
var td;
for(var i=1;i<tr.length;i++){
td = tr[i].getElementsByTagName("td");
obj['machine'] = td[0].innerHTML;
console.log(obj['machine']);
obj['day'] = td[1].getElementsByTagName("p")[0].innerHTML;
obj['night'] = td[2].getElementsByTagName("p")[0].innerHTML;
j.push(obj);
console.log(j);
}
return j;
};
console.log(save_limitation());
您只在中创建一个对象实例obj
循环之前的变量。在每次迭代中,您都会更新对象的属性并将同一对象推入数组中。
要修复此问题,请在每次迭代时在循环中创建一个新对象。
var return_json = function() {
var j = [];
var td;
for(var i = 1; i < tr.length; i++){
td = tr[i].getElementsByTagName("td");
j.push({
machine: td[0].innerHTML,
day: td[1].getElementsByTagName("p")[0].innerHTML,
night: td[2].getElementsByTagName("p")[0].innerHTML
});
}
return j;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)