📅  最后修改于: 2023-12-03 14:44:44.291000             🧑  作者: Mango
在开发 Nodejs 应用程序时,经常需要从对象中删除 null 值。这篇文章将向您展示如何使用 Nodejs 从对象中删除 null 值。
这是一个递归函数,它将从给定的对象中删除 null 值,并返回新对象。
function removeNull(obj) {
if (Array.isArray(obj)) {
let arr = [];
obj.forEach((item) => {
if (typeof item === 'object' && item !== null) {
arr.push(removeNull(item));
} else if (item !== null) {
arr.push(item);
}
});
return arr;
} else {
let newObj = {};
Object.keys(obj).forEach((key) => {
if (typeof obj[key] === 'object' && obj[key] !== null) {
newObj[key] = removeNull(obj[key]);
} else if (obj[key] !== null) {
newObj[key] = obj[key];
}
});
return newObj;
}
}
使用 JSON 序列化和反序列化是另一种从对象中删除 null 值的方法。
let obj = {
name: 'John',
age: null,
address: {
city: null,
country: 'USA'
}
};
obj = JSON.parse(JSON.stringify(obj, (key, value) => {
if (value === null) {
return undefined;
}
return value;
}));
console.log(obj);
以上代码会输出以下结果:
{
"name": "John",
"address": {
"country": "USA"
}
}
以上两种方法都可以从对象中删除 null 值。第一种方法使用了递归函数,而第二种方法使用了 JSON 序列化和反序列化。视具体情况而定,可以选择其中一种或两种方法同时使用。