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

如何在JavaScript中按索引对双重嵌套数组进行分组?

实现方法

作为JS新手,用filter()方法是最直观易懂的方式,直接根据子数组的第一个元素来筛选分组:

var mixedArray = [["online","abc","def"],["offline","ghi","jkl"],["online","mno","pqr"],["offline","stu","vwx"]];

// 提取所有"online"开头的子数组
var array1 = mixedArray.filter(item => item[0] === "online");
// 提取所有"offline"开头的子数组
var array2 = mixedArray.filter(item => item[0] === "offline");

运行之后,array1就是你要的在线数组,array2是离线数组,完全符合需求。

补充说明

如果你还没接触过箭头函数,换成普通函数写法也一样能用:

var array1 = mixedArray.filter(function(item) {
  return item[0] === "online";
});

要是以后需要按更多状态(比如"idle")分组,推荐用reduce()一次性完成,扩展性更强:

// 用reduce把数组按状态分组到对象里
var grouped = mixedArray.reduce((obj, item) => {
  const status = item[0];
  // 如果对象里没有对应状态的数组,先创建空数组
  if (!obj[status]) obj[status] = [];
  // 把当前子数组加到对应状态的数组里
  obj[status].push(item);
  return obj;
}, {});

// 从分组对象里取出需要的数组
var array1 = grouped.online;
var array2 = grouped.offline;

内容的提问来源于stack exchange,提问作者Fkofree 19

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:38:17