Javascript - 过滤偶数

new*_*sio 0 javascript arrays filter

我想过滤一个包含零(0)的数组,同时捕获它们.

var arr1 = [-200, -163, -26, -4, 0, 7, 76];

var evens = arr1.filter(function(x) {
  if (x % 2 === 0 || x === 0) {
    return x;
  }
})

console.log(evens);
Run Code Online (Sandbox Code Playgroud)

为什么我的'evens'阵列中没有归零?如果零不被归类为偶数,则不应该是我的

|| x===0
Run Code Online (Sandbox Code Playgroud)

声明抓零?

谢谢Brad

Sur*_*yan 6

您需要返回truefalseArray#filter函数返回.根据返回值,它将填充返回的数组.由于条件返回boolean,您只需将返回值设置为条件即可.

var arr1 = [-200, -163, -26, -4, 0, 7, 76];

var evens = arr1.filter(function(x) {
   return x % 2 === 0;
})

console.log(evens);
Run Code Online (Sandbox Code Playgroud)

使用箭头功能的语法更短

var arr1 = [-200, -163, -26, -4, 0, 7, 76];

var evens = arr1.filter(x => x % 2 === 0);

console.log(evens);
Run Code Online (Sandbox Code Playgroud)

  • 一旦你检查了 `x % 2 === 0`,就没有必要有 `x === 0`。 (2认同)