乐趣区

关于javascript:改变你的编码思想

明天有集体 (2.5 年工作教训) 问我问题,感觉挺有意思,分享给大家

我有个对象要发送给后端,而后 value 为空的 key 要删除, 怎么删除?

if(!data.name){delete data.name}

我这个对象有好多字段,那我得判断到啥时候呢?

那你就用 for in 循环去判断进行删除


咋写呢?不会呀

而后我就写了个简略的demo

let data = {
  name: '3434',
  age: 0,
  time: ''
}

for (const key in data) {if (data[key] === '' || data[key] == null || data[key] == undefined) {delete data[key]
  }
}

过了一会他说,你这个不行啊,基本删除不掉!

我此时心田 ??????????????
我说我看你咋写的

let data = {
  page: {
    index: 1,
    page: 1
  },
  params: {
    ...
    name: this.listQuery.name,
    class: this.listQuery.class,
    type: this.listQuery.type,
    ...
  }
}

for (const key in data) {if (data[key] === '' || data[key] == null || data[key] == undefined) {delete data[key]
  }
}

我惊呆了!!!!

过后我感觉我被坑骗了,我写的 demo 是个陈设吗?或者我的 demo 得用递归 …..

我说那你就一个一个判断吧(心累)

过了良久我给他回复,把 demo 中的 data 全副替换为
data.params 或者本人钻研下 递归

好了,这下能够了,递归的要怎么写呢?

???????
编程要先看懂代码,学什么货色才会越快,更要触类旁通

退出移动版