zoukankan      html  css  js  c++  java
  • 深度删除对象/数组中的空字段

    问题描述:

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

    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;
    };

     

  • 相关阅读:
    (图论)树的直径
    HDU 4607
    类属性的增删改查
    python内置常用模块
    字典的使用
    元组的使用
    列表的基本函数
    字符串练习题
    python3.7字符串基本函数
    python简单的while语句和if语句的练习
  • 原文地址:https://www.cnblogs.com/wisewrong/p/13719007.html
Copyright © 2011-2022 走看看