在Angular 2应用程序中将项目推送到数组内的对象

时间:2017-02-15 04:08:43

标签: javascript arrays angular

在我的Angular2应用程序中,我试图弄清楚如何将一个新对象推入一个包含具有三个属性的对象的数组 - 当我只想推送这三个属性中的一个时。以此数组为例:

locations = [
  { city: 'Los Angelas', zipcode: '90001', coordinates: 2321 },
  { city: 'New York', zipcode: '10001', coordinates: 3432 },
];

这里我只想推新的拉链码 - 而不是城市名称或坐标。所以,我推测在推送一个新对象后它看起来像这样:

locations = [
  { city: 'Los Angelas', zipcode: '90001', coordinates: 2321 },
  { city: 'New York', zipcode: '10001', coordinates: 3432 },
  { zipcode: 20001 }
];

我该如何处理?我可以这样做吗?或者我是否需要为其他两个属性传递空值?

2 个答案:

答案 0 :(得分:1)

你的意思是一个已经存在的对象?在那种情况下,

let index = locations.findIndex(element => element.city === city)
locations[index].zipcode = newZipCode

Array.findIndex尚未完全支持,因此您可能需要对其进行填充,或者您可以使用lodash中的方法。

编辑:根据我的评论,这应该可行,因为我知道你在寻找什么:

locations.push({ zipcode: newZipCode })

答案 1 :(得分:1)

试试这个

locations = [
  { city: 'Los Angelas', zipcode: '90001', coordinates: 2321 },
  { city: 'New York', zipcode: '10001', coordinates: 3432 },
];

var tempObject = {
   zipcode : '10000'
}
locations.push(tempObject);

tempObject推入locations数组后,它就像

locations = [
  { city: 'Los Angelas', zipcode: '90001', coordinates: 2321 },
  { city: 'New York', zipcode: '10001', coordinates: 3432 },
  { zipcode: '10000'}
];

现在,当您尝试访问locations[2].citylocations[2].coordinates时,它将为undefined