javascript - 如何获取嵌套数组中所有非嵌套项的长度?
问题描述
数组上的 .length 属性将返回数组中元素的数量。例如,下面的数组包含 2 个元素:
[1, [2, 3]] // 2 个元素,数字 1 和数组 [2, 3] 假设我们想知道嵌套数组中非嵌套项的总数。在上述情况下,[1, [2, 3]] 包含 3 个非嵌套项,1、2 和 3。
例子
getLength([1, [2, 3]]) ➞ 3
getLength([1, [2, [3, 4]]]) ➞ 4
getLength([1, [2, [3, [4, [5, 6]]]]]) ➞ 6
解决方案
您可以使用扁平化数组.flat(Infinity)
,然后获取长度。使用.flat()
参数 ofInfinity
会将嵌套数组中的所有元素连接到一个外部数组中,从而允许您计算元素的数量:
const getLength = arr => arr.flat(Infinity).length;
console.log(getLength([1, [2, 3]])) // ➞ 3
console.log(getLength([1, [2, [3, 4]]])) // ➞ 4
console.log(getLength([1, [2, [3, [4, [5, 6]]]]])) // ➞ 6
推荐阅读
- python - 从图像创建一维 numpy 数组
- python - 必须使用 PiCamera 重置每张图片之间的分辨率
- python - 如何在 Python-opencv 中实现图像数组?
- keycloak-rest-api - 我应该使用哪些 keycloak 端点?
- c++ - 我应该怎么做才能退出被调用的函数并继续另一个函数?
- python - 如何将 CSV 数据存储到变量中?
- javascript - JavaScript 递归对象映射
- javascript - 从服务器中的 AJAX 请求接收 int
- javascript - 即使在插入组件后,如何显示带有样式组件图标的图标?(盖茨比)
- oauth-2.0 - 使用 IdentityServer 4 中的授权代码流保护公共 API