首页 > 解决方案 > 如果数组之和为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 中实现这一点?

标签: javascriptarrays

解决方案


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)
  ))
);


推荐阅读