Lodash有没有办法合并重复项?

时间:2016-08-10 18:48:25

标签: javascript arrays lodash

这将是一个真正的问题,但我无法弄清楚我的生活。我甚至不确定我能使用的正确功能。

请考虑以下事项:

enter image description here

如您所见,我们有一个对象数组,每个对象都有一个键(日期)和一个数组值。

我们可以看到有两个具有相同日期的对象。如何将这两个对象合并在一起,这样我就有一个日期(8月10日),一个包含两个对象的数组,而不是两个具有一个对象数组的对象。

我认为这是一个带有集合方法的数组方法(类似于filter?)?

我不确定。 帮助吗

1 个答案:

答案 0 :(得分:1)

//Solution starts here:

var results = [];
var temps = {};

//Iterate through the dates to find uniq keys(date).
_.each(dates, function(date) {
    //Store uniq keys(date) and it's value.
    _.each(date, function(value, key) {
    if (temps.hasOwnProperty(key)) {
        temps[key] = temps[key].concat(value);
    } else {
        temps[key] = value;
    }
  });
});

//Tranform the object into an array.
_.map(temps, function(value, key) {
   var item = {};
   item[key] = value;
   results.push(item);
});
//results is your answer
相关问题