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

如何移除二维数组末尾的空数组元素?

移除二维数组末尾的空数组元素

嘿,这个场景我太熟悉了!要去掉数组末尾那些连续的空数组,这里有几个简单直接的方法:

方法一:倒序遍历+弹出空元素

这是最直观的方式——从数组末尾开始检查,只要最后一个元素是全空的数组,就把它删掉,直到碰到非空的元素为止。

// 先定义你的目标数组
let inventory = [
  ['Rice', 125.0, 5000.0, new Date('Sat Dec 30 01:23:24 GMT-06:36 1899')],
  [], [], [], [], [], [], []
];

// 循环检查并移除末尾空数组
while (inventory.length > 0) {
  const lastItem = inventory[inventory.length - 1];
  // 判断当前末尾数组是否全为空(适配你的空元素格式)
  const isEmptyArray = lastItem.every(item => item == null || item === '');
  if (!isEmptyArray) break;
  inventory.pop();
}

console.log(inventory); // 输出:[['Rice', 125.0, 5000.0, Sat Dec 30 01:23:24 GMT-06:36 1899]]

小说明:

这里的every(item => item == null || item === '')是用来判断数组里的每个元素是否都是空值(包括null、undefined或者空字符串),完全匹配你给出的空数组格式。如果你的空数组判断标准不同,可以调整这个条件——比如如果是空数组(长度为0),直接判断lastItem.length === 0就行。

方法二:利用数组截断(更简洁)

如果你不想用循环弹出,也可以先找到最后一个非空数组的索引,然后直接截断数组:

let inventory = [/* 你的数组内容 */];

// 找到最后一个非空数组的位置
let lastValidIndex = inventory.length - 1;
while (lastValidIndex >= 0) {
  const item = inventory[lastValidIndex];
  if (!item.every(i => i == null || i === '')) break;
  lastValidIndex--;
}

// 截断数组,只保留到最后一个有效元素
inventory = inventory.slice(0, lastValidIndex + 1);

这个方法和第一种逻辑类似,只是换了一种实现方式,适合需要保留原数组副本的场景。


内容的提问来源于stack exchange,提问作者Brandon Hunt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:10:17