阵列中的子阵列
Subarrays in an array
本文关键字:阵列 更新时间:2024-04-29
我对JavaScript非常熟悉(现在只研究了不到一周),在计算从某个数组生成的子数组中的值的总和时遇到了问题。我可以使用这个功能做到这一点:
function getSubs(arr) {
var newarr = [];
for (var i = 0; i < arr.length; i++){
for (var j = arr.length; j > 0; j--){
newarr.push(arr.slice(i, j));
}
}
return newarr;
}
现在,如果例如为数组[1,2,3]
调用此函数,则结果为[[], [], [], [1], [2], [3], [2, 3], [1, 2], [1, 2, 3]]
。我不明白为什么有三个空数组,但这与我试图实现的目标很接近。此外,我想得到每个子数组中值的总和。我知道上面的代码很粗糙。希望有人能帮我改进。提前谢谢!
嵌套for的条件不正确。将其从j > 0
更改为j > i
,它将正常工作:
function getSubs(arr){
var newarr = [];
for (var i=0;i<arr.length;i++){
for (var j=arr.length;j>i;j--){
newarr.push(arr.slice(i,j));
}
}
return newarr;
}
输入:
[1,2,3]
输出:
[[1,2,3],[1,2],[1],[2,3],[2],[3]]
需要注意的是:考虑到Array.slice(initialOffset, finalOffset)
,在finalOffset > initialOffset
时只返回一个非空数组是有意义的。
相关文章:
- 使用正则表达式捕获“”并分割成阵列
- AngularJS卡片转盘:将卡片返回到阵列的末尾
- 从不同的对象创建阵列
- 阵列中随机图像的问题
- 在特定条件下从存储在localStorage中的阵列中删除对象
- 如何将所有同级存储在动态本地存储阵列中
- 从localStorage添加和检索阵列
- angular.注射器阵列值未返回当前值
- 流星蒙戈的返回阵列
- 从2D RGB阵列创建图像
- 构建画布RGB值的2D阵列
- 图像阵列预加载时显示沙漏光标
- 当会话存储阵列中存在大量元素时,如何从中删除元素
- 相对于角度控制器中的另一个阵列过滤阵列项目
- 为什么不是't我的“;虚拟的“;阵列工作
- Json阵列的详细信息显示在三页的angularjs中
- 来自阵列的大小为N的组合
- 用替换或拼接替换阵列中的编号
- d3中的过滤阵列
- 选择具有重新成角度或成角度的嵌套阵列元素