我有一个如下数组。
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];
答案 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
,''
等)也会被删除。