Lea*_*ins 1 javascript arrays jquery
我有一个像js的对象
[{"name":"John","group":"t1..." .....}]
Run Code Online (Sandbox Code Playgroud)
所以要从同一个t1创建新用户,我循环使用obj
var new_user;
for(var i=0; i<users.length; i++) {
if(users[i].group === 'group name goes here') {
new_user = users[i];
break;
}
}
Run Code Online (Sandbox Code Playgroud)
然后只是推它使用users.push(new_user);然后我尝试改变使用的名称
var l = users.length - 1; users[l].name = 'Jack';
Run Code Online (Sandbox Code Playgroud)
它会更改所有用户的名称.
[{"name":"Jack","group":"t1..." .....},{"name":"Jack","group":"t1..." .....}]
Run Code Online (Sandbox Code Playgroud)
我知道我做错了什么.我感谢任何帮助.
这里的问题是您将新变量名称分配给旧对象.这是一个参考,而不是对象的副本.new_user = users[i]创建new_user链接到的引用users[i].您必须复制该users[i]对象,才能更改new_user.Underscore有一个可以使用的复制/克隆功能.