1. 解决使用js遍历数组的方法去遍历数组返回值为空的问题

文章讲述了在JavaScript中使用filter方法时,由于忘记使用return导致数组处理结果为空的问题,强调了在有大括号的箭头函数中使用return的必要性,并提供了flatMap替代flatMap的解决方案。
摘要由CSDN通过智能技术生成

1、错误展示

const arr1 = [17];

const arr2 = [
    { id: 17, status: 0 },
    { id: 19, status: 1 },
]

const arr3 = arr1.map(item => {
    return arr2.filter(ele => {
        console.log(ele,item)
        ele.id === item
    })
})

const arr4 = arr2.filter((ele) => {
    ele.id === 17;
})

console.log("arr3", arr3)
console.log("arr4", arr4)

分析:使用 filter 遍历数组后应该返回 arr2 中符合条件的对象,但打印出来 arr3 与 arr4 的值都为空数组

输出:打印出来 arr3 与 arr4 的数据都为空数组

2、原因

是因为没有正确地使用 return 关键字,在 JavaScript 中,如果箭头函数体内有大括号 {},则需要使用 return 明确返回一个值。否则,箭头函数将不会返回任何值,导致结果为空。

3、解决

使用 {} 的函数体内添加 return 关键字让函数有个返回值

 <script>
      const arr1 = [17]

      const arr2 = [
        { id: 17, status: 0 },
        { id: 19, status: 1 },
      ]

      const arr3 = arr1.flatMap((item) => {
        return arr2.filter((ele) => ele.id === item);
      })

      console.log("arr3", arr3)

      const arr4 = arr2.filter((ele) => {
        return ele.id === 17
      })

      console.log("arr4", arr4)
 </script>

输出:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值