javascript - 如果数组之和为0,如何实现逻辑,从JavaScript中的数组中删除?
问题描述
我有如下数组。
[["a",0,0,0],["b",30,20,10],["c",40,50,60],["d",0,0,0],...]
如果每个数组内的数字总和为零,我想删除一些数组并获得以下返回。
[["b",30,20,10],["c",40,50,60],...]
谁能告诉我如何实现逻辑以在 JavaScript 中实现这一点?
解决方案
filter
数组的数组,通过迭代每个数组并跟踪数组中数字的总和reduce
:
const input = [
["a", 0, 0, 0],
["b", 30, 20, 10],
["c", 40, 50, 60],
["d", 0, 0, 0],
['e', 30, -30]
];
console.log(
input.filter((arr) => (
arr.reduce((a, item) => (
typeof item === 'number'
? a + item
: a
), 0)
))
);
推荐阅读
- jquery - 带有多个级联选择复选框的jquery jsTree
- python - 正则表达式语法中的引号
- java - OSError:[Errno 8] 执行格式错误:'/Users/CodingStark/opt/anaconda3/share/jupyter/kernels/java/ijava-1.3.0.jar'
- kentico - 无法在 Kentico 12 中创建新的 MVC 小部件
- azure - Azure NSG 规则向 Internet 公开
- ios - 如何禁用 tvOS Apple TV 中的自动焦点更改
- javascript - 如何在光滑滑块的最后一次上下滑动后继续滚动页面?
- python-3.x - 有没有办法在 MongoDB 的一个语句中添加递增的 id?
- python - 用 ctypes 替换共享库中的函数指针
- amazon-web-services - 使用 terraform 从弹性 beantalk 应用程序设置弹性负载平衡的密码