1. ホーム
  2. ジャバスクリプト

[解決済み】Javascriptでオブジェクトから空白の属性を削除する

2022-03-24 01:50:49

質問

である属性をすべて削除するにはどうすればよいですか? undefined または null をJavaScriptのオブジェクトの中に入れることができますか?

(と同じような質問です。 これ 配列の場合)

どのように解決するのですか?

オブジェクトをループすることができます。

var test = {
  test1: null,
  test2: 'somestring',
  test3: 3,
}

function clean(obj) {
  for (var propName in obj) {
    if (obj[propName] === null || obj[propName] === undefined) {
      delete obj[propName];
    }
  }
  return obj
}

console.log(test);
console.log(clean(test));

このプロパティの削除が、オブジェクトのプロティープチェーンを駆け上がらないことを懸念している場合は、次のようにすることもできます。

function clean(obj) {
  var propNames = Object.getOwnPropertyNames(obj);
  for (var i = 0; i < propNames.length; i++) {
    var propName = propNames[i];
    if (obj[propName] === null || obj[propName] === undefined) {
      delete obj[propName];
    }
  }
}

nullとundefinedについて少し。

test.test1 === null; // true
test.test1 == null; // true

test.notaprop === null; // false
test.notaprop == null; // true

test.notaprop === undefined; // true
test.notaprop == undefined; // true