You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何将数组相同元素分组为子数组?

JavaScript 数组按元素分组并格式化输出

实现思路

先遍历原数组将相同元素归类到同一数组,再根据需求转换为指定格式输出。

代码实现

基础分组(得到数组集合)

const originalArray = ['a', 'b', 'c', 'a', 'a', 'c'];

// 分组处理
const grouped = originalArray.reduce((acc, item) => {
  acc[item] = acc[item] || [];
  acc[item].push(item);
  return acc;
}, {});

// 提取分组后的数组
const resultArrays = Object.values(grouped);
console.log(resultArrays);
// 输出:[ ['a','a','a'], ['b'], ['c','c'] ]

格式化为指定字符串

如果需要输出Array(3):(a,a,a)、Array(1):(b)、Array(2):(c,c)这种格式,可继续处理:

const formattedStr = resultArrays.map(arr => `Array(${arr.length}):(${arr.join(',')})`).join('、');
console.log(formattedStr);
// 输出:"Array(3):(a,a,a)、Array(1):(b)、Array(2):(c,c)"

代码说明

  • reduce遍历原数组,构建以元素为键、对应分组数组为值的对象,完成相同元素的归类。
  • Object.values从分组对象中提取所有数组值,得到最终的分组数组集合。
  • 最后通过map格式化每个数组为指定字符串,再用join拼接成最终结果。

内容的提问来源于stack exchange,提问作者Julian PIL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 13:36:28