如何通过JS从数组中删除特定的数字?

时间:2017-09-05 22:44:59

标签: javascript

我有一个如下数组。

var array_numbers = [0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9]; 

如何从数组中删除所有出现的零并获取数组中的非零数字?

var result_numbers = [1,2,3,4,5,6,7,8,9];

4 个答案:

答案 0 :(得分:2)

您可以使用Javascript过滤功能。

首先,定义一个函数,如果你想保留值,它将返回true,如果你想删除它,则返回false。要检查的值将作为参数传递给函数。

function removeZeros(value) {
  return value !== 0;
}

然后,您可以在阵列的filter方法中使用该函数。

var result_numbers= array_numbers.filter(removeZeros);

答案 1 :(得分:1)

可能最简单的方法是通过Boolean过滤每个项目:

const arr = [0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9]

console.log(arr.filter(Boolean))

答案 2 :(得分:0)

babel-polyfill

答案 3 :(得分:0)

作为Wayne答案的补充,您还可以使用https://github.com/kivy-garden/garden.mapview来进一步简化代码。

看起来像这样:

var array_numbers = [0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9]; 

console.log(array_numbers.filter(x => x !== 0));

正如Rob M所说,0评估为假,所以你可以用以下方法将其削减一点:

array_numbers.filter(x => x);

示例:

var array_numbers = [0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9]; 

console.log(array_numbers.filter(x => x));

请注意,在最后一种情况下,评估为false的值(例如false''等)也会被删除。