如何解决使用对象克隆方法和for循环将对象推入数组,这些对象仍然是相同的引用,并且在数组中相同
let promiseArr = [];
for (let i = 0; i < ISOarr.length; i++) {
options.body.start_time = ISOarr[i];
let newOptions = cloneOptions(options);
promiseArr.push(newOptions);
}
console.log(promiseArr);
返回相同对象的数组。 克隆方法:
cloneOptions = options => {
let clone = {};
for( let key in options ) {
clone[key] = options[key]
}
return clone;
}
所以我的问题是我该如何推送与之前推送的对象不相同的引用的对象,因为即使假定每个循环都创建一个新的克隆,它仍会以某种方式创建相同的引用对象。 在循环中,如果我console.log可以得到正确的输出,并且更改了键的值,但是一旦将其推送到数组中,然后我们在console.log数组中,所有对象都是相同的。任何建议将超级有帮助。预先谢谢你!
解决方法
你能试试吗
cloneOptions = options => {
return JSON.parse(JSON.stringify(options))
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。