【问题标题】:Merge 2 arrays of object and save value in array合并2个对象数组并将值保存在数组中
【发布时间】:2022-01-03 17:16:52
【问题描述】:

让我们看一个例子。



const arr1 = [
  {
    algo: [
      { key: 'c', value: 1 },
      { key: 'java', value: 2 },
    ],
    base: [
      { key: 'js', value: 3 },
      { key: 'python', value: 4 },
    ],
  },
  {
    algo: [
      { key: 'c', value: 10 },
      { key: 'java', value: 20 },
    ],
    base: [
      { key: 'js', value: 30 },
      { key: 'python', value: 40 },
    ],
  },
]



我需要合并这两个对象数组并创建以下数组:

信息:我想合并数组字符串/整数值中的值 信息:我可以使用 lodash

const results = [
  {
    algo: [
      { key: 'c', value: [1, 10] },
      { key: 'java', value: [2, 20] },
    ],
    base: [
      { key: 'js', value: [3, 30] },
      { key: 'python', value: [4, 40] },
    ],
  },
]

【问题讨论】:

  • 请在此处也添加您的解决方案或您尝试达到预期结果的方法。
  • 我已经尝试过_.merge和reduce函数

标签: javascript node.js arrays merge


【解决方案1】:

解决方案

const customMerge = (objValue, srcValue) => {
  return { key: objValue.key, value: [objValue.value, srcValue.value] }
}
const mergeAttributes = array => {

  return array.reduce((acc, curr) => {
    if (Object.keys(acc).length === 0) {
      acc = curr
    } else {
      Object.keys(curr).forEach(key =>
        acc[key] = _.mergeWith(acc[key],curr[key],customMerge)
      )
    }
    return acc
  }, {})
}

【讨论】:

    猜你喜欢
    • 2011-11-01
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 2017-09-25
    • 2022-01-21
    • 1970-01-01
    • 2020-05-30
    相关资源
    最近更新 更多