筛选JavaScript数组中大于零的元素

时间:2018-07-05 08:23:06

标签: javascript arrays

我有一个“ 2D” JavaScript数组,其中包含以下数据:

String

我想删除第二行所有包含0的行,以使结果数组如下所示:

let arr = [
    ["w",0],
    ["x",1],
    ["y",0],
    ["z",2]
]

有什么高雅的想法吗?

2 个答案:

答案 0 :(得分:1)

使用Array.filter(),其中您可以检查内部数组在0的第二位置上是否不包含元素值item[1] !== 0

let arr = [
    ["w",0],
    ["x",1],
    ["y",0],
    ["z",2]
];
var res = arr.filter(item => item[1] !== 0);
console.log(res);

使用filter()可以遍历数组的每个元素,并在回调函数中传递该元素,然后该回调函数根据条件返回相同/已修改的元素。因此,item是数组的元素,并将其传递给回调函数。由于回调中只有一行代码,我们可以用item[1] !== 0替换该回调函数,并且在满足条件时默认情况下也会返回。

答案 1 :(得分:0)

具有Array.prorotype.filter和数组解构分配的解决方案:

let arr = [
    ["w",0],
    ["x",1],
    ["y",0],
    ["z",2]
]

const filtered = arr.filter(([_,a]) => a > 0);

console.log(filtered);