- ループと条件文を使用する方法:
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
演算子を使用して属性を削除します。
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()
はサポートされていない古いブラウザでは使用できませんので、注意してください。
- 新しいオブジェクトにコピーする方法:
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の属性を効果的に削除することができます。