最近经常熬夜写 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 » 微信小程序踩坑:一个“=”等号引发的“血案”