微信小程序踩坑:一个“=”等号引发的“血案”

2021-07-21 15:09:45 浏览数 (1)

最近经常熬夜写 bug ,连续肝到凌晨。

今天在一个地方卡住了,在操作数组的时候,发现 map 后数据的 value 都是重复的,导致 filter  过滤出现问题。

举个例子:

代码语言:javascript复制
const data = [
  {name: '百度', val: '101'},
  {name: '腾讯', val: '102'},
  {name: '阿里', val: '103'}
]
let list = []
data.map((item) => {
  list.push({
    name: item.name,
    value: item.val
  })
})
const info = list.filter((item) => {
  return item.value = '102'
})
console.log(info)

看一下,这里打印的 info 是什么?

我想要的是:

代码语言:javascript复制
[{name: '腾讯', value: '102'}]

得到的结果却是:

代码语言:javascript复制
[
  {name: '百度', value: '102'},
  {name: '腾讯', value: '102'},
  {name: '阿里', value: '102'}
]

实际上问题并不在 map,而是我脑抽在  filter  过滤的时候给 value 赋值了。

忘了一个 = 等号,应该是这样才对:

代码语言:javascript复制
const info = list.filter((item) => {
  return item.value == '102'
})

// [{name: '腾讯', value: '102'}]

就这么一个小小的 = 害我抠了老半天,啊啊啊啊!

我要睡觉了,再这么下去要猝死了。ˊ(●﹏●)ˋ

0 人点赞