解析对象数组中每个键的唯一值

时间:2019-02-22 11:34:30

标签: javascript parsing

我试图找到最快的方法来解析大量对象并为每个对象获取唯一值。 我要解析的数组有90000个巨大的对象,其中包含很多键。最好的方法是什么?这是一个示例:

const collection = [
  {
    value1: 1,
    value2: 3,
    ...
  },
  {
    value1: 4,
    value2: 3,
    ...
  }
]

至:

const result = {
  value1: [1, 4],
  value2: [3],
  ...
}

谢谢。

2 个答案:

答案 0 :(得分:0)

尝试使用Array#reduce

  1. 循环内部数组并传递a对象
  2. 如果不存在,则创建或将值推送到数组
  3. 对于unique values,使用indexOf验证数组

const collection = [{value1: 1,value2: 3,},{ value1: 4,value2: 3,}];

$res = collection.reduce(function(a,b){
  Object.keys(b).forEach(function(i,k){
    a[i] = a[i]||[];
    if(a[i].indexOf(b[i]) == -1){
    a[i].push(b[i])
    }
  })
  return a
},{})



console.log($res)

答案 1 :(得分:0)

const collection = [
  {
    value1: 1,
    value2: 3,
  },
  {
    value1: 4,
    value2: 3,
    value3: "wowo"
  }
]
const ans = {}
collection.forEach(itm => {
    for(var propertyName in itm) {
        console.log("item",propertyName)
        ans[propertyName] = ans[propertyName] || []
        ans[propertyName].push(itm[propertyName])
    }
})

console.log(ans)