JavaScriptの配列の要素を削除する方法を紹介する。
delete演算子
delete演算子を使うと、削除した要素の値が「undefined」になる。
要素の数は変わらない。
numbers = ['zero','one','two','three'];
delete numbers[2]; //3番目の要素を削除
//numbersは['zero','one',undefined,'three'];
delete演算子で削除すると、配列に穴が開いてしまう。
この動作が期待した動作ではないことが多い。
要素を削除したら、インデックスを詰めてほしいはずだ。
spliceメソッド
spliceメソッドを使うと、削除した要素のインデックスを詰める。
要素の数は減少する。
numbers = ['zero','one','two','three'];
numbers.splice(2, 1); //3番目の要素を削除
//numbersは['zero','one','three'];
spliceメソッドは、1番目の引数に削除する要素のインデックスを、2番目の引数に削除する要素の数を指定する。
numbers.splice(削除する要素のインデックス, 削除する要素の数);
本来、spliceメソッドは配列の要素を置き換えるメソッドだが、このように使うことで、期待通りに配列の要素を削除することができる。