首页 > 解决方案 > 如何按类别排列数组?

问题描述

我实际上是 javascript 的新手,我有这种数据系列

[3,3,4,5,5,6] 

我想以数组的形式排列它,我期望的输出是

(2 之 3) (1 之 4) (2 之 5) (1 之 6)

有人可以帮我解决这个问题吗?

我需要在图表中显示这些数据,我使用的是chartJS,数字是月份的形式(1是1月2是2月....)

这嗬真的我的数据看起来像

021-06-20T16:17:35.000000Z
2021-07-19T00:17:35.000000Z
2021-07-20T00:17:35.000000Z
2021-07-21T00:17:35.000000Z
2021-07-21T00:17:35.000000Z
2021-08-21T00:17:35.000000Z

我真正期望的是以这种形式拥有一个对象数组

[{data : '06',count : 1},
{data : '07',count : 4},
{data : '08',count : 1}]

有什么技巧可以在不格式化数据的情况下使用 chartjs 做到吗?

标签: javascriptalgorithmcharts

解决方案


你可以通过多种方式做到这一点,尽管我只是给你一个。

function callback(acc, child) {
  let isCreated = acc.find((ch) => ch.data === child);
  if (isCreated) {
    isCreated.count++;
  } else {
    acc.push({ data: child, count: 1 });
  }

  return acc;
}

let data = [3, 3, 4, 5, 5, 6].reduce(callback, []);

console.log(data);

日志应该是

[
  { data: 3, count: 2 },
  { data: 4, count: 1 },
  { data: 5, count: 2 },
  { data: 6, count: 1 }
]

推荐阅读