JavaScriptオブジェクトから未定義またはnullの属性を削除する方法


  1. ループと条件文を使用する方法:
function removeUndefinedOrNull(obj) {
  for (var key in obj) {
    if (obj[key] === undefined || obj[key] === null) {
      delete obj[key];
    }
  }
  return obj;
}
var obj = {
  name: 'John',
  age: undefined,
  address: null,
  hobby: 'programming'
};
var result = removeUndefinedOrNull(obj);
console.log(result);

この方法では、for...inループを使用してオブジェクトの属性を反復処理し、属性の値が未定義またはnullである場合はdelete演算子を使用して属性を削除します。

  1. Object.keys()forEach()を組み合わせる方法:
function removeUndefinedOrNull(obj) {
  Object.keys(obj).forEach(function(key) {
    if (obj[key] === undefined || obj[key] === null) {
      delete obj[key];
    }
  });
  return obj;
}
var obj = {
  name: 'John',
  age: undefined,
  address: null,
  hobby: 'programming'
};
var result = removeUndefinedOrNull(obj);
console.log(result);

この方法では、Object.keys()関数を使用してオブジェクトのキーを取得し、forEach()メソッドを使用してキーごとに属性をチェックして削除します。Object.keys()はサポートされていない古いブラウザでは使用できませんので、注意してください。

  1. 新しいオブジェクトにコピーする方法:
function removeUndefinedOrNull(obj) {
  var newObj = {};
  for (var key in obj) {
    if (obj[key] !== undefined && obj[key] !== null) {
      newObj[key] = obj[key];
    }
  }
  return newObj;
}
var obj = {
  name: 'John',
  age: undefined,
  address: null,
  hobby: 'programming'
};
var result = removeUndefinedOrNull(obj);
console.log(result);

この方法では、新しいオブジェクトを作成し、元のオブジェクトの属性をチェックして未定義またはnullでない場合に新しいオブジェクトにコピーします。

これらの方法のいずれかを使用することで、JavaScriptオブジェクトから未定義またはnullの属性を効果的に削除することができます。