可以为对象数组进行循环,删除重复并添加由同一用户组成的值

时间:2018-01-08 16:28:02

标签: javascript for-loop

我有一个对象数组,在每个对象用户和值(值       由数组组成)。这必须最小化以删除重复的用户和       将数据添加到值数组中。

{{1}}

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

var data = [
  { user: 'VAY9090', value: [ 'KL65' ] },
  { user: 'VAY9090', value: [ 'KL6I' ] },
  { user: 'VAY9092', value: [ 'KLMF' ] },
  { user: 'VAY9092', value: [ 'KLMQ' ] },
  { user: 'VAY9090', value: [ 'KLMR' ] },
  { user: 'BTD9891', value: [ 'KLMS' ] },
  { user: 'VAY9090', value: [ 'KLVZ' ] },
  { user: 'VAY9033', value: [ 'KMYJ' ] },
  { user: 'BTD9891', value: [ 'KMYK' ] }
];

var convertedData = convert(data);

console.log(convertedData);

function convert(data) {
  var result = [];
  var obj = {};

  data.forEach(function(item) {
    obj[item.user] = obj[item.user] || {
      user: item.user,
      value: []
    };

    obj[item.user].value = obj[item.user].value.concat(item.value);
  });

  for(var i in obj) {
    result.push(obj[i]);
  }

  return result;
}