【JS】オブジェクトのundefinedのプロパティを削除する

やりたいこと

const sampleObject = { key1: 1, key2: undefined, key3: 3, key4: 4, key5: undefined,
};

↑↑のようなオブジェクトがあった場合に、undefinedのプロパティを削除して↓↓のようなオブジェクトにしたい

const sampleObject = { key1: 1, key3: 3, key4: 4,
};

解決策

こんな感じでできました!

const newSampleObject = Object.fromEntries( Object.entries(sampleObject).filter(([, value]) => { return value !== undefined; })
);
console.log(newSampleObject);
// {"key1": 1, "key3": 3, "key4": 4} 

解説

Object.entriesでオブジェクトを配列に変換しています。

const sampleObject = { key1: 1, key2: undefined, key3: 3, key4: 4, key5: undefined,
};
console.log(Object.entries(sampleObject));
// [["key1", 1], ["key2", undefined], ["key3", 3], ["key4", 4], ["key5", undefined]]

オブジェクトを配列に変換後、filterで値がundefinedのものを除きます。

const sampleObject = { key1: 1, key2: undefined, key3: 3, key4: 4, key5: undefined,
};
console.log(Object.entries(sampleObject).filter(([, value]) => { return value !== undefined;
}));
// [["key1", 1], ["key3", 3], ["key4", 4]] 

最後に、Object.fromEntriesで配列をオブジェクトに変換して終了です!

const sampleObject = { key1: 1, key2: undefined, key3: 3, key4: 4, key5: undefined,
};
console.log(Object.fromEntries( Object.entries(sampleObject).filter(([, value]) => { return value !== undefined; })
));
// {"key1": 1, "key3": 3, "key4": 4} 

IT技術ブログ
↓↓「にほんブログ村」のランキングに参加しています。少しでも面白い、参考になったとか思われたらポチッとしていただけると嬉しいです!

にほんブログ村 IT技術ブログへ

にほんブログ村