乐趣区

关于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或者本人钻研下递归

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

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

退出移动版