javascript - 从两个数组之间的匹配对象复制属性值

标签 javascript arrays javascript-objects

我正在使用 Angular 2/Typescript。

我有一个“项目”数组:

items: [
  {
    "id": 1,
    "qty" undefined
  },
  {
    "id": 2,
    "qty" undefined
  } 
  {
    "id": 3,
    "qty" undefined
  }...etc
]

然后我有一个“ItemsWithQuantities”数组:

 itemsWithQuantities: [
      {
        "id": 1,
        "qty" 55
      },
      {
        "id": 2,
        "qty" 3
      } ...etc
    ]

我想将 itemsWithQuantities 数组中的数量值放入 items 中匹配(通过 id)对象的 qty 属性大批。显然我可以创建一个循环和嵌套循环来找到匹配项并设置属性值,但我对重构/ Eloquent 解决方案更感兴趣。我想知道是否有内置于 typescript/"new"JS 风格甚至 lodash 中的东西可以让我得到我想要的东西。

最佳答案

您可以使用 lodash merge !

    var items = [
      {
        "id": 1,
        "qty": undefined
      },
      {
        "id": 2,
        "qty": undefined
      },
      {
        "id": 3,
        "qty": undefined
      }
    ];
    
    var itemsWithQuantities = [
          {
            "id": 1,
            "qty": 55
          },
          {
            "id": 2,
            "qty": 3
          },
          {
          	"id": 3,
            "qty": 24
          }
    ];
        
    var answer = _.merge(itemsWithQuantities, items);
    console.log(answer);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.5.1/lodash.min.js"></script>

jsfiddle

关于javascript - 从两个数组之间的匹配对象复制属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43809121/

相关文章:

javascript - 如何控制台登录couchdb

javascript - 谷歌可视化数据表 : calculate totals

javascript - 多个复选框,绑定(bind)到 Vue JS 中的同一个数组

arrays - 订购 NSDate 数组。 swift 2

javascript - 实例化 JavaScript 对象时的最佳实践是什么?

javascript - 使用来自 DOM 的信息创建一个 Controller /服务来持久化数据

javascript - 如何在更改或选择事件时禁用多选?

javascript - 使用构造函数在对象内部创建对象

javascript - 如何将 JavaScript 对象数组转换为单个对象?

arrays - 如何通过 Swift 中的 for 循环将数组的所有元素附加到标签