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

如何检测未知嵌套深度数组中[]符号的总数量?

统计嵌套数组中[]符号的总数量

针对未知嵌套深度的数组,有两种常用方法统计[]符号的总数量,可根据场景选择:

方法1:转字符串统计(简单场景)

如果数组元素都是数字、布尔值、null等不含[]的非字符串类型,可以直接把数组转为JSON字符串,用正则匹配所有[和]并统计数量:

const array = [1,2,3,4,[5,6],[[[[7,8]]]]];
const jsonStr = JSON.stringify(array);
const totalBrackets = (jsonStr.match(/\[|\]/g) || []).length;
console.log(totalBrackets); // 输出12

这种方法代码简洁,但如果数组里有包含[]的字符串元素(比如['[abc]', 1]),会误统计字符串内的括号,不适合这类场景。

方法2:递归遍历统计(通用场景)

通过递归遍历数组的每一个元素,仅统计数组类型对应的括号对,完全避免字符串干扰:

function calculateTotalBrackets(arr) {
  let count = 2; // 当前数组本身的一对[]
  for (const item of arr) {
    if (Array.isArray(item)) {
      count += calculateTotalBrackets(item);
    }
  }
  return count;
}

const array = [1,2,3,4,[5,6],[[[[7,8]]]]];
console.log(calculateTotalBrackets(array)); // 输出12

原理:每个数组自身对应一对[](计数+2),遇到子数组时递归统计其子数组的括号数量并累加,最终得到所有[]符号的总数量。

另外补充:如果你的真实需求是扁平化任意深度的数组,不需要提前知道嵌套层级,直接使用array.flat(Infinity)即可,无需统计括号数量。

内容的提问来源于stack exchange,提问作者Vilayat Safarov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 20:49:50