如何在javascript中从数组中删除某些数字元素

时间:2018-01-04 21:58:43

标签: javascript arrays

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

2 个答案:

答案 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#includesString#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);