JS では、JSON オブジェクトで構成される配列に対して、例えば:
var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];
その中の 2 番目の JSON オブジェクトを削除したい場合、どうすればよいでしょうか?実は方法は配列の操作とまったく同じです。
最初に使用してみたのはdelete演算子ですが、配列の長さを確認した際に、実はこの方法は要素を完全に削除するのではなく、その値を削除するだけで、領域が残ることがわかりました。
var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];
test.length //输出为 3
delete test[1];
test.length //输出仍为 3
delete 演算子について調べると、それは値を undefined にするだけで、配列の長さには影響をとえず、つまり疎な配列になることがわかります(『JS権威ガイド』7.5節)。
これを踏まえると、削除位置以降の要素をそれぞれ1つ前へ移動させれば、その要素を完全に除外できると思うかもしれませんが、JSのメソッドの中にはもっと簡単な方法があります。splice() 方法 → splice() メソッド
var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];
test.length //输出为 3
test.splice(1, 1);
test.length //输出为 2
削除後、test.length は 2 になります。これがまさに望んでいた結果です。
原文地址:https://blog.csdn.net/WI_232995/article/details/77776433 → 原文アドレス:https://blog.csdn.net/WI_232995/article/details/77776433