【javascript】オブジェクト(連想配列)の要素を削除する

公開日:
更新日:
カテゴリー: javascript

javascritpのオブジェクト(いわゆる連想配列)の値(要素)を削除する方法を紹介しています。

delete演算子で削除する

オブジェクトから要素(プロパティ)を削除する場合、delete演算子を使います。

delete演算子は、オブジェクトからプロパティを削除します(詳細はこちら)。

オブジェクトの指定要素を削除する

次のようなオブジェクトを作成したとします。

//オブジェクトの作成
var object = {a:'A',b:'B',c:'C'};

このとき、object.aという要素を削除する場合、このようにします。

//オブジェクトの要素を削除
delete object.a;
//この書き方でも削除できます
delete object['a'];

オブジェクトの全ての要素を削除する

オブジェクトの全ての要素を削除する場合、このようにします。

//オブジェクトをループ
for(var key in object){
	//オブジェクトの要素を一つずつ削除していく
	delete object[key];
}

nullを指定した場合

次のようにオブジェクトの要素(object.a)に「null」をした場合、

object[a] = null;

次のようにnullが指定されるだけで要素そのものは削除されません。

object = {a:null,b:'B',c:'C'};

delete演算子で配列の要素を削除した場合

delete演算子で配列の要素を削除する場合は注意が必要です。

というのも、delete演算子で要素を削除しても、「配列の長さ」は変化しません。

//配列の作成
var array = ["太郎","次郎","三郎","四郎","五郎"];

上のような配列があった場合、

//配列の要素を削除
delete array[2];

のように配列の3番目の要素を削除しても、array[3]は「四郎」、array[4]は「五郎」のままです。

削除されたarray[2]は「undefined」になります。

また、

//配列の最後の要素を削除
delete array[array.length-1];

のように配列の最後の要素を削除しても「undefined」になります。

なお、delete演算子で削除された要素は、配列の一部ではなくなります。

Tips

オブジェクトではなく、配列の指定要素を削除したい場合は【javascript】配列の指定要素を削除するを参考にしてください。

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント