删除对象中的'' 、[]、{}

const obj = {
  a: 1,
  b: '2',
  c: [], // x
  d: {
      aa: 1,
      bb: '2',
      cc: '', // x
      dd: {}  // x
  },
  e: {} // x
}

const fn=(obj)=>{
  if(Object.prototype.toString.call(obj) !=='[object Object]') return obj
  let newobj={}
  for(let p in obj){
    if(obj.hasOwnProperty(p)){
      if(obj[p] instanceof Array && obj[p].length===0) continue
      if(obj[p] instanceof Object && JSON.stringify(obj[p]) === '{}') continue
      if(obj[p] === '') continue
      newobj[p]=fn(obj[p])
    }
  }
  return newobj
}
let res=fn(obj)
console.log('res',res)


posted @ 2021-08-27 16:52  abcdefgab  阅读(433)  评论(0)    收藏  举报