如果JavaScript中的键值相同,则合并对象数组

时间:2020-02-03 09:09:59

标签: javascript arrays object

我想知道如何在JavaScript中使用相同的dependencies { compile group: 'com.google.code.gson', name: 'gson', version: '2.8.6' compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.2.4.RELEASE' implementation 'org.springframework.boot:spring-boot-starter-websocket' testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } } 组合数组值。

我尝试了以下代码

id
let result = this.getData(obj);

function getData(obj) {
 return obj.map(e=>({procode: e.prcode, id: e.id});
}

预期输出:

var obj= [
  {
    id: "1",
    prcode: "dessert"
  },{
    id: "1",
    prcode: "snacks"
  }, {
   id: "2",
   prcode: "cafe"
 }, {
  id: "4",
  prcode: "all"
}
]

1 个答案:

答案 0 :(得分:7)

您可以将reduceObject.values()一起使用:

var obj = [
  { id: "1", prcode: "dessert" },
  { id: "1", prcode: "snacks" },
  { id: "2", prcode: "cafe" },
  { id: "4", prcode: "all" }
]

const out = obj.reduce((a, v) => {
  if(a[v.id]) {
    a[v.id].prcode = [a[v.id].prcode, v.prcode].join(',')
  } else {
    a[v.id] = v
  }
  return a
}, {})
console.log(Object.values(out))