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

deleteを使う

deleteを使えば特定のプロパティを削除できます。

type SampleObject = {
  key1?: number;
  key2?: number;
  key3?: number;
  key4?: number;
  key5?: number;
}

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

delete sampleObject.key2
console.log(sampleObject);
// {"key1": 1, "key3": 3, "key4": 4, "key5": undefined} 

delete sampleObject["key3"]
console.log(sampleObject);
// {"key1": 1, "key4": 4, "key5": undefined} 

ただし、オプショナルでないプロパティをdeleteしようとすると下記のようなエラーになります。

Property 'key3' does not exist on type 'SampleObject'. Did you mean 'key'?

分割代入 + 残余引数を使う

プロパティの削除ではありませんが、分割代入と残余引数を使うと特定のプロパティを除いたオブジェクトを作ることができます。

const profile = {id: 1, name: 'hoge', age: 25, height: 170, weight: 65}

上記profileからidを除外したい場合、下記のようにすればできます。

const profile = {id: 1, name: 'hoge', age: 25, height: 170, weight: 65}
const {id, ...newProfile} = profile

console.log(id) // 1
console.log(newProfile)
// { "name": "hoge", "age": 25, "height": 170, "weight": 65 } 

分割代入と残余引数を使うことで、newProfileにはid以外のプロパティが格納されます。

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

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

にほんブログ村