通过引用

时间:2018-03-26 22:28:18

标签: javascript

所以我试图将数据从一个对象合并到另一个对象中,这是一个数组。我目前正在使用for循环来添加它们,但我想知道是否还有另一种更快捷的方式,就像使用扩展运算符一样。自从做

theElement = {...theElement, ...toMerge[key]}

显然只是创建一个新对象而不是更新它。

filtered只是一个例子。该数组可能包含更多元素,我需要根据toMerge中与key中的filtered匹配的键进行合并。



let toMerge = {
  1234: {
    example: "example1"
  },
  12345: {
    example: "example2"
  }
}

let filtered = [
  {
    key: "1234"
  },
  {
    key: "12345"
  }
]

for (let key in toMerge)
{
  let theElement = filtered.find( element => element.key == key)

  for (let innerKey in toMerge[key])
  {
    theElement[innerKey] = toMerge[key][innerKey]
  }
}

console.log(filtered)




我希望改变的是:

  for (let innerKey in toMerge[key])
  {
    theElement[innerKey] = toMerge[key][innerKey]
  }

1 个答案:

答案 0 :(得分:0)

不,你不能在这里使用传播语法,但你可以通过迭代if the left("123avd0",2)而不是枚举filtered然后使用toMerge访问元素来优化很多。您也可以用find

替换内部循环
Object.assign