前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序踩坑:一个“=”等号引发的“血案”

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

作者头像
德顺
发布2021-07-21 15:09:45
5670
发布2021-07-21 15:09:45
举报
文章被收录于专栏:前端资源

最近经常熬夜写 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'}]

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档