鍍金池/ 問答/HTML/ JS整合數(shù)組中多個元素數(shù)據(jù)的問題

JS整合數(shù)組中多個元素數(shù)據(jù)的問題

具體是要把下面這個

var targets = [
    {targetIds:[1],zone_id: 10000},
    {targetIds:[2],zone_id: 10000},
    {targetIds:[3],zone_id: 10001},
    {targetIds:[4],zone_id: 10000}
]

變成這樣:

var targets = [
    {targetIds:[1,2,4],zone_id: 10000},
    {targetIds:[3],zone_id: 10001}
]

要求是可以將多個zone_id對應的targetIds整合到一起

回答
編輯回答
氕氘氚
var targetsMap = {}
var result = []
targets.forEach(function(item){
  if (targetsMap[item.zone_id]) {
    targetsMap[item.zone_id] = targetsMap[item.zone_id].concat(item.targetIds)
  } else {
    targetsMap[item.zone_id] = item.targetIds
  }
})
Object.keys(targetsMap).forEach(function(key) {
  result.push({
    targetIds: targetsMap[key],
    zone_id: key,
  })
})
console.log(result)
2017年9月30日 22:53