Dos formas de vacia un array
Se define un array y desea vaciar su contenido. Por lo general, usted lo haría así:
// define Array
var list = [1, 2, 3, 4];
function empty() {
//empty your array
list = [];
}
empty();
Pero hay otra manera de vaciar un array que es más performante.
Debe utilizar un código como este:
var list = [1, 2, 3, 4];
function empty() {
//empty your array
list.length = 0;
}
empty();
-
list = []
asigna una referencia a un nuevo array a una variable, mientras que las otras referencias no se ven afectadas. Lo que significa que las referencias a los contenidos del array anterior todavía se mantienen en la memoria, lo que lleva a pérdidas de memoria. -
list.length = 0
borra todo el contenido del array, lo que afecta otras referencias.
In other words, if you have two references to the same array (a = [1,2,3]; a2 = a;
), and you delete the array’s contents using list.length = 0
, both references (a and a2) will now point to the same empty array. (So don’t use this technique if you don’t want a2 to hold an empty array!)
En otras palabras, si usted tiene dos referencias a el mismo array (a = [1,2,3]; a2 = a;
), y se elimina el contenido del array usando list.length = 0
, ambas referencias (a and a2) se apuntan ahora al mismo array vacío. (Así que no se utilice esta técnica si usted no quiere a2 para sostener un array vacío!)
Piense en lo que tendra esta salida:
var foo = [1,2,3];
var bar = [1,2,3];
var foo2 = foo;
var bar2 = bar;
foo = [];
bar.length = 0;
console.log(foo, bar, foo2, bar2);
// [] [] [1, 2, 3] []
Stackoverflow mas detalles: difference-between-array-length-0-and-array
Use the 100 answers in this short book to boost your confidence and skills to ace the interviews at your favorite companies like Twitter, Google and Netflix.
GET THE BOOK NOWA short book with 100 answers designed to boost your knowledge and help you ace the technical interview within a few days.
GET THE BOOK NOW