js 清除数组对象或 对象数组 空值 nul [] undefined {}

133 阅读1分钟
<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="utf-8" />  
        <title></title>  
        <style type="text/css">  
            span{  
                display: inline-block;  
                width:60px;  
                word-break: keep-all;  
                overflow: hidden;  
                text-overflow: ellipsis;  
            }  
            span:hover{  
                overflow: visible;  
            }  
        </style>  
    </head>  
    <body>  
        <div>  
            <span>  
                欢迎光临本寒舍啊哈哈哈哈啊哈哈哈  
            </span>  
        </div>  
    </body>
    <script>
	var arr =  [
    {
      'a': 1,
      'b': [],
	   'e': null,
	   'f': undefined,
	   'j': '哈哈哈',
	   'm': '',
      'test': {}
    },
    {
      'b': ''
    },
    {
      'c': '',
      'd': {
        'e': null,
        'f': undefined,
        'g': 'test',
        'h': [
          {
            'i': '',
            'j': '哈哈哈',
            'k': []
          }
        ]
      }
    }
  ]
  var obj = {
      'c': '',
      'd': {
        'e': null,
        'f': undefined,
        'g': 'test',
        'h': [
          {
            'i': '',
            'm': '哈哈哈',
            'j': '哈哈哈',
            'k': []
          },
		  {
            'i': '',
            'm': '哈哈哈',
            'j': '哈哈哈',
            'k': []
          },
		  {
            'i': '',
            'j': '哈哈哈',
            'j': '哈哈哈',
            'k': []
          }
        ]
      }
    }

  
  function delUndefined(ob) {
    for (let e in ob) {
        if (typeof(ob[e]) === 'undefined' || ob[e] === null || ob[e] ===undefined || ob[e] ==='' || ob[e] === "null"  ||ob[e].length ===0 || ob[e] === {} ) {
            delete ob[e];
        }
        else if (ob[e].constructor === Object) {
            if (Object.keys(ob[e]).length === 0) {
                delete ob[e];
            } else {
                delUndefined(ob[e]);
            }
        }
        else if (ob[e].constructor === Array) {
            ob[e].map(function (seg) {
                if (typeof(seg) === 'object') {
                    delUndefined(seg);
                }
            });
        }
    }
    return ob;
}
console.log(delUndefined(arr),"arr")
console.log(delUndefined(obj),"obj")