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

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

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

举个例子:

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 是什么?

我想要的是:

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

得到的结果却是:

[
  {name: '百度', value: '102'},
  {name: '腾讯', value: '102'},
  {name: '阿里', value: '102'}
]

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

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

const info = list.filter((item) => {
  return item.value == '102'
})

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

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

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


未经允许不得转载:w3h5 » 微信小程序踩坑:一个“=”等号引发的“血案”

赞 (0)
分享到: +

评论 沙发

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)