for循环 给数组push值
需求:循环像数组push对象(不一样);
问题现象:数组里面的所有对象一样;
代码(大概形式):
【大概形式就是下面这样,但实际上getValue里面的逻辑更多。下面这段代码不能复现出来】
var detailArr=[{name:"张三",age:12},{name:"张四",age:8}];
var getValue=function(obj){
return obj;
}
var itemRes = null;
var arr=[];
for (let i = 0; i < detailArr.length; i++) {
itemRes =getValue(detailArr[i]);
console.log(itemRes) // {name:"张三",age:12}, {name:"张四",age:8}
arr.push(itemRes)
}
console.log(arr);// arr[{name:"张四",age:8},{name:"张四",age:8}]
【上面的打印结果不是上面代码的真实结果,而是参照实际我的问题的打印】
解决方式:由于打印单个输出结果的时候没问题,所以我就试着将其变为字符串拼接,结果是可以的。【怀疑是引用类型的问题】
var arrstr = "";
...
arrstr += JSON.stringify(itemRes) + "&spliceKeyName";
...
var arrRes = arrstr.split("&spliceKeyName");
for (var key in arrRes){
if(arrRes[key]) arr.push(JSON.parse(arrRes[key]))
}
博客围绕for循环给数组push对象展开。需求是循环向数组push不同对象,但出现数组内所有对象相同的问题。尝试以大概形式代码未能复现,最终通过将其变为字符串拼接解决,怀疑是引用类型问题。
176万+

被折叠的 条评论
为什么被折叠?



