我希望复制数组中的数据以测试性能。我试过了
var users = data.data
console.log(users.length)
users.concat(JSON.parse(JSON.stringify(users)))
console.log(users.length)
Users
是一个数组。
即使使用JSON-hack,它每次输出30。我怎样才能获得数据的重复?
答案 0 :(得分:3)
我不知道你为什么要使用JSON方法,但如果你想在最后添加相同的内容,只需获取.concat()
的返回值。
users = users.concat(users);
如果您需要制作内容的深层副本,那么您可以使用具有深层复制功能的简单循环,我相信您可以在线找到它。 JSON技术不处理所有数据类型,所以要小心那个。
如果你需要改变原始版本,如果数组不是太长,那么你可以这样做:
users.push.apply(users, users);
很长的数组可能会失败。我认为它在数组中有150,000个项目。因此,如果是这种情况,您需要将其分解为批次,或者只使用for
循环。
答案 1 :(得分:1)
代码中的问题是concat
不会改变数组,它会返回一个新数组
所以你可以做到
users = users.concat(JSON.parse(JSON.stringify(users)));
用于深层复制。
concat()
方法返回一个新数组,该数组由调用它的数组组成,并与作为参数提供的数组和/或值连接。