JS:判断对象为空及清除对象为空属性1、判断对象为空对象(也就是{})
(1)使⽤Object.keys
(2) 使⽤ JSON.stringify
(3)使⽤for..in
typeof array
2、清除对象为空属性
(1)会改变原对象(直接修改原对象)的⽅法
(2)不改变原对象的⽅法(也就是返回⼀个新对象)
原代码如下:
function filterParams(obj) { // 剔除对象的空属性
var _newObj = {};
for (var key in obj) {
if (obj.hasOwnProperty(key)) { // 判断对象中是否有这个属性
if (isEmpty(obj[key])) continue;
_newObj[key] = typeof obj[key] === 'object' ? (
obj[key] instanceof Array ? ArrayFilterParams(obj[key]) : filterParams(obj[key])
): obj[key];
}
}
return _newObj;
}
function ArrayFilterParams(arr) { // 剔除数组中的空值
var err = [];
const empty_arr = ['', undefined, null];
arr.forEach((item, index) => {
if (isEmpty(item)) return;
err.push(
typeof item === 'object' ? (
item instanceof Array ? ArrayFilterParams(item) :  filterParams(item)
) : item
);
})
return err;
}
function isEmpty(obj) { // 为空情况
const empty_arr = ['', undefined, null];
return (empty_arr.indexOf(obj) > -1 || String().trim() === '');
}
let info = {
name: '111',
age: null,
sex: undefined,
aa: '',
infoo: [
1, 23,5434,null,22, {
nale: '',
ss: '111'
}
],
cc: {
asas: [
1,2,23,333
],
name: '',
asss: undefined,
aaa:null
}
}
console.log(filterParams(info));

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。