【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】配列の指定要素を削除するを参考にしてください。
あわせて読んでほしい!
コメント
まだコメントはありません。
コメントフォーム