En JS, para un array compuesto por objetos JSON, por ejemplo:

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];

Si queremos eliminar el segundo objeto JSON de ese array, ¿cómo deberíamos hacerlo? En realidad, el método es idéntico al de operar con arrays.

 

Al principio intenté usardeleteel operador delete, pero al consultar la longitud del array descubrí que en realidad este método no elimina el elemento por completo, sino que elimina su valor, pero aún conserva el espacio.

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];
test.length   //输出为 3
delete test[1];
test.length   //输出仍为 3

Al consultar el operador delete, sabemos que solo establece el valor como undefined y no afecta la longitud del array, es decir, lo convierte en un array disperso (sección 7.5 de "JavaScript: La guía definitiva").

 

Sabiendo esto, quizás pienses en mover cada elemento después del punto de eliminación una unidad hacia adelante para eliminar por completo ese elemento, pero en los métodos de JS podemos encontrar una forma más sencilla:El método 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

Después de eliminarlo, test.length se convierte en 2, que es exactamente el resultado que queremos.

Dirección original: https://blog.csdn.net/WI_232995/article/details/77776433