【问题标题】:Merge values with same key in object Javascript在对象Javascript中合并具有相同键的值
【发布时间】:2022-11-01 14:17:22
【问题描述】:

从共享一个键的 JavaScript 对象中合并数组内容的最佳方法是什么?

下面示例中的数组如何重组为输出?在这里,所有值键(无论是否为数组)都合并到共享相同名称键的所有对象中。

const array = 
[
  {
    brand: ['Adidas', 'Nike']
    color: ['red']
  },
  {
    brand: ['Puma', 'Nike'],
    size: ['31', '32']
  }
]

/* Expect output
[{
  brand: ['Adidas', 'Puma', 'Nike'],
  size: ['31', '32']
  color: ['red']
}] 
*/

【问题讨论】:

    标签: javascript


    【解决方案1】:

    这应该工作

    const array = 
    [
      {
        brand: ['Adidas', 'Nike'],
        color: ['red']
      },
      {
        brand: ['Puma', 'Nike'],
        size: ['31', '32']
      }
    ]
    
    const res = array.reduce((prev, curr) => {
       for(let key in curr) {
          if(!prev[key]) {
              prev[key] = curr[key]
          } else {
              prev[key].push(...curr[key])
          }
       }
       return prev
    }, {})
    
    console.log(res)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2016-08-21
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多