也许这是一个晦涩难懂的问题,但我对JS很陌生。这总是重复插入相同的项目,当对象更改值时,它正在更改数组上插入的最后一个项目的值,我该如何避免它并插入我正在迭代的所有值?self.user.userSociedadesAreasLink =[]; var userSociedadesAreasLink = {}; for(var i =0 ; i< self.selectedSociedades.length ; i++){ userSociedadesAreasLink.sociedad = self.selectedSociedades[i]; self.user.userSociedadesAreasLink.push(userSociedadesAreasLink); }
2 回答

大话西游666
TA贡献1817条经验 获得超14个赞
每次都使用相同的对象推送到数组中,只更改属性的值。您必须每次都创建一个新对象才能使其成为唯一对象。
self.user.userSociedadesAreasLink =[];
for(var i =0 ; i< self.selectedSociedades.length ; i++){
var userSociedadesAreasLink = {};
userSociedadesAreasLink.sociedad = self.selectedSociedades[i];
self.user.userSociedadesAreasLink.push(userSociedadesAreasLink);
}
这应该可以解决问题。

人到中年有点甜
TA贡献1895条经验 获得超7个赞
您可以每次都推送一个新的对象文本。您也可以只使用地图操作来实现此目的。
self.user.userSociedadesAreasLink = self.selectedSociedades.map(s => ({sociedad: s}));
添加回答
举报
0/150
提交
取消