📜  nodejs 从对象中删除 null - Javascript (1)

📅  最后修改于: 2023-12-03 14:44:44.291000             🧑  作者: Mango

Nodejs:从对象中删除 null

在开发 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 序列化和反序列化

使用 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 序列化和反序列化。视具体情况而定,可以选择其中一种或两种方法同时使用。