【JavaScript】自定义函数之去除数组(对象)中空数据

  • Post author:
  • Post category:java

代码

/**
 * 去除数组(对象)中空数据
 *
 * @param {Object|Array} arr
 *
 * @return {Object|Array}
 */
function filterNullValue(arr){
    var _data=(typeof arr!="object")? [arr] : arr  //确保参数总是数组
    var _dataJudge = function(val){ // 统一过滤判断
        return val === null || val == '' || val == undefined || JSON.stringify(val) === "{}";
    };
	for ( let i in _data){
        if( typeof i === 'number' || (Number(i) == i) ){
            if(_dataJudge(_data[i])){_data.splice(i, 1);}
        }else{
            if(_dataJudge(_data[i]))delete _data[i];
        }
	}
	return _data;
}

示例测试

var arrData = [
    {}, '123', '', 'test', undefined
]

var objData = {
    test: "123",
    test2: "",
    test3: {}
}


filterNullValue(arrData);
// 返回:["123","test"]

filterNullValue(objData);
// 返回:{"test":"123"}

版权声明:本文为u011159821原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。