如何遍历array.reduce变量

时间:2016-10-20 05:31:23

标签: javascript arrays

我有一个以下数组,其中包含日期。

var arrs= ["2016/10/4", "2016/10/4", "2016/10/7", "2016/10/7", "2016/10/7"];

我正在减少此数组以获取相同日期的计数,因此我使用以下代码

var maps = arrs.reduce(function(prev, cur) {
    prev[cur] = (prev[cur] || 0) + 1;
    return prev;
}, {});
console.log(maps);

现在,计数可用于浏览器控制台中的每个唯一日期,如下所示

Object {2016/10/4: 2, 2016/10/7: 3}

我想为这个reduce对象创建json对象。

[{
    date : 2016/10/4,
    value : 2
},
{
    date : 2016/10/7,
    value : 3
}]

如何获得它,我无法获得长度或为每个地图制作。

1 个答案:

答案 0 :(得分:2)

生成对象后,使用Object.keysArray#map方法生成所需的数组。



var arrs = ["2016/10/4", "2016/10/4", "2016/10/7", "2016/10/7", "2016/10/7"];

var maps = arrs.reduce(function(prev, cur) {
  prev[cur] = (prev[cur] || 0) + 1;
  return prev;
}, {});

maps = Object.keys(maps) // get all property name 
  // iterate and generate eleemnt
  .map(function(k) {
    // generate prefered structure of array eleement
    return {
      date: k,
      value: maps[k]
    };
  });

console.log(maps);