JavaScriptのオブジェクトから、値がundefined
なフィールドを取り除く関数です。
オブジェクトからundefinedを取り除く関数
function removeUndefinedFromObject(object) {
return Object.fromEntries(
Object.entries(object).filter(([k, v]) => v !== undefined)
)
}
実行例
console.log(
removeUndefinedFromObject({
a: undefined,
b: 0,
c: "",
d: null,
e: { e1: undefined, e2: 1 },
})
)
//=> { b: 0, c: '', d: null, e: { e1: undefined, e2: 1 } }
注意事項
再帰的にはチェックしません
上の実行例で分かるように、ネストしたオブジェクトのプロパティはチェックされません。
対応バージョン
ES2017とES2019に未対応の環境では下記関数が動作しません:
-
Object.fromEntries
- ES2019 -
Object.entries
- ES2017
必要に応じてpolyfillを当てて下さい。