3

今天有个人(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或者自己研究下递归

好了,这下可以了,递归的要怎么写呢?

???????
编程要先看懂代码,学什么东西才会越快,更要举一反三


雾岛听风
11.9k 声望8.6k 粉丝

丰富自己,胜过取悦别人。