gpt4 book ai didi

javascript - 数组中为 0 时,筛选器的行为与预期不符。 Javascript

转载 作者:行者123 更新时间:2023-11-29 20:49:38 25 4
gpt4 key购买 nike

我有一个这样的随机整数数组:[ 1, 2, 3, 4, 0 ],我需要返回一个新的奇数或偶数数组,具体取决于想要条件。

我尝试了以下过滤方法:

const result = array.filter(item => {
const test = item % 2;
if(wanted === 'odd' && test > 0) return item;
if(wanted === 'even' && test === 0) return item;
})

并期望它能工作,但它只返回 [2, 4] 而从不返回 [0, 2, 4]想要 是偶数。

任何关于为什么会出现这种情况的想法都将不胜感激。

最佳答案

您需要从过滤器回调中返回一个 bool 值,而不是项目。当您返回该项目时,它主要起作用,但如果该项目为零,则被解释为 false

let arr = [ 1, 2, 3, 4, 0 ]
let wanted = 'even'
const result = arr.filter(item => {
const test = item % 2;
if(wanted === 'odd' && test > 0) return true;
if(wanted === 'even' && test === 0) return true;
})
console.log(result)

您可以简化任何只返回测试创建的 bool 值:

let arr = [ 1, 2, 3, 4, 0 ]
let wanted = 'even'
const result = arr.filter(item => {
if (wanted === 'odd') return item % 2
if (wanted === 'even') return !(item % 2)
})
console.log(result)

关于javascript - 数组中为 0 时,筛选器的行为与预期不符。 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52563640/

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