var numbers = [1,2,0,3,0,4,0,5];
如果我有上面的数组,我想删除0并输出[1,2,3,4,5]的数组,我该怎么做?
我有以下代码,但我得到一个" TypeError:arr.includes不是一个函数"错误...
var zero = 0;
var x = balDiffs.map(function(arr, i) {
console.log(arr);
if(arr.includes(zero)) {
return i;
}
});
答案 0 :(得分:3)
使用带有Array#filter功能的Boolean作为回调。布尔函数将返回false
为0,true
为其他数字:
var numbers = [1,2,0,3,0,4,0,5];
var result = numbers.filter(Boolean);
console.log(result);
答案 1 :(得分:3)
Array#map
返回一个与给定数组长度相同的数组,但它可以更改每个元素的值。
然后您为Array#includes
或String#includes
提取了一个元素,但这不适用于数字。
但是即使这样有效,你也只能使用给定的方法获得零和undefined
。
您可以使用Array#filter
并过滤不需要的值。
var numbers = [1, 2, 0, 3, 0, 4, 0, 5],
value = 0, // or any other value
filtered = numbers.filter(v => v !== value);
console.log(filtered);
使用多个不需要的值进行处理。
var numbers = [1, 2, 0, 3, 0, 4, 0, 5],
unwanted = [0, 3],
filtered = numbers.filter(v => !unwanted.includes(v));
console.log(filtered);