gpt4 book ai didi

javascript - 为什么 if 语句不会返回 boolean 和 object 类型的值?

转载 作者:行者123 更新时间:2023-12-03 03:50:14 24 4
gpt4 key购买 nike

我很好奇为什么过滤器方法中的 else if 语句不返回任何内容:

var moveZeros = function (arr) {
const nonZeros = arr.filter(value => {
if (value !== 0) return value
else if (typeof value === 'boolean') return value
else if (typeof value === 'object') return value
})

const zeros = arr.toString().match(/0/g).map(Number)

const newArr = nonZeros.concat(zeros)

return newArr
}

此外,我还想知道为什么当我尝试从数组中过滤掉零时会得到类似的效果:

const zeros = arr.filter(value => {
if (value === 0) return value
})

这是一个用于测试该函数的示例数组:

[ 0, 1, null, 2, false, 1, 0 ]

感谢您的帮助!

最佳答案

您不需要在 filter 方法中返回值,如果应该选择该值,则返回应该为 true 的 bool 值,如下所示:

var moveZeros = function (arr) {
// also when you use !== 0, you don't need to check the type as it compares type
const nonZeros = arr.filter(value => value !== 0)
const zeros = arr.filter(value => value === 0)

const newArr = nonZeros.concat(zeros)
return newArr
}

console.log(moveZeros([ 0, 1, null, 2, false, 1, 0 ]));

关于javascript - 为什么 if 语句不会返回 boolean 和 object 类型的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45203684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com