将对象添加到对象数组

也许这是一个晦涩难懂的问题,但我对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);

     }


喵喔喔
浏览 171回答 2
2回答

大话西游666

每次都使用相同的对象推送到数组中,只更改属性的值。您必须每次都创建一个新对象才能使其成为唯一对象。self.user.userSociedadesAreasLink =[];for(var i =0 ; i< self.selectedSociedades.length ; i++){&nbsp; &nbsp; var userSociedadesAreasLink = {};&nbsp; &nbsp; userSociedadesAreasLink.sociedad =&nbsp; self.selectedSociedades[i];&nbsp; &nbsp; self.user.userSociedadesAreasLink.push(userSociedadesAreasLink);}这应该可以解决问题。

人到中年有点甜

您可以每次都推送一个新的对象文本。您也可以只使用地图操作来实现此目的。self.user.userSociedadesAreasLink&nbsp;=&nbsp;self.selectedSociedades.map(s&nbsp;=>&nbsp;({sociedad:&nbsp;s}));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript