javascript - 如何将值推送到对象内的数组

标签 javascript angular typescript

我在一个对象中有一个数组,如下所示。

sourceSystemArray = [{
  "attId" : 2257,
  "attributeName" : "country",
  "attributeValues" : [ "AU", "KG", "IN", "AF" ]
}]

使用输入字段,我为用户提供添加新值的选项。 现在我想最终将使用 ngModel 获得的新输入值添加到 attributeValues 数组中。 因此,假设用户输入一个新的国家/地区,例如新西兰。 所以我想将 NZ 推送到 attributeValues,我的最终对象应该像这样:

sourceSystemArray = [{
      "attId" : 2257,
      "attributeName" : "country",
      "attributeValues" : [ "AU", "KG", "IN", "AF","NZ" ]
    }]

我尝试使用推送方法,但它不起作用。 有人可以帮我弄清楚如何实现它吗?

最佳答案

如果您尝试添加此对象,您可能会遇到问题,因为它本身位于数组中。以下是我添加到 attributeValues 的方法。

let myarray = [{
  "attId" : 2257,
  "attributeName" : "country",
  "attributeValues" : [ "AU", "KG", "IN", "AF" ]
}]

myarray[0].attribute values.push('GB')

或者,假设它不是数组中的唯一项目。

let myarray = [{
  "attId" : 2257,
  "attributeName" : "country",
  "attributeValues" : [ "AU", "KG", "IN", "AF" ]
}]

myarray.find(item => item.attId === 2257)
  .attributeValues.push('GB')

关于javascript - 如何将值推送到对象内的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60785292/

相关文章:

javascript - 如何使用 react 在图像中的对象上绘制矩形?

javascript - 如何定位具有相同ID的div

Angular2 测试组件是否有正确的选择器

javascript - 正则表达式 unicode 范围 [uXXXX] 未使用 ajax 识别

javascript - Bootstrap 对话框未在其中执行 JavaScript 代码

angular - 如何知道@Input何时发生变化?

angular - Angular 2 的最佳模块加载器?

javascript - 使用 ng-bootstrap 和 Angular 2 的轮播动画

reactjs - 扩展另一个接口(interface)的通用接口(interface)

javascript - Angular 2 : Mix Typescript, JavaScript 和 Dart