问题描述:

将对象中的空字段删掉,比如这样的一个对象:

const obj = {
    name: 'wise',
    age: 0,
    info: '',
    key1: null,
    key2: undefined,
}

处理成为:

obj = {
  name: 'wise',
  age: 0,
}

 

解决方案:

/**
 * 深度删除对象/数组中的空字段
 * @param {Object} obj    目标对象
 * @param {Array}  except 必须排除的字段名的集合,这些字段不论结果,直接舍弃
 */
function CleanEmptyKey(obj, except = ['key']) {
  if (typeof obj !== 'object') { // 兼容对象和数组 
    return obj;
  }
  const res = Array.isArray(obj) ? [] : {};
  for (const key in obj) {
    // 如果是需要排除的字段,直接舍弃
    if (except && except.includes(key)) continue;
    // 有值或值为0,则保留键值对
    if (obj[key] || obj[key] === 0) {
      res[key] = CleanEmptyKey(obj[key]);
    }
  }
  return res;
};

 

相关文章:

  • 2022-12-23
  • 2021-06-28
  • 2021-10-01
  • 2021-12-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-11
猜你喜欢
  • 2021-08-03
  • 2021-10-08
  • 2021-09-22
  • 2022-12-23
  • 2021-11-08
  • 2022-12-23
相关资源
相似解决方案