alvaro-prieto
5/16/2018 - 8:00 AM

shift y unshift VS push y pop VS splice VS slice (no altera el original)

Push y pop, son una pila de platos Shift y unshift, extraen y agregan al principio de la lista.

var v = ["C", "D", "E", "F"];
v.unshift("A", "B");
// quedará A, B, C, D, E, F

shift retorna el primero y lo elimina del array original

//Push y pop ya se conocen, trabajan como una torre de platos

//splice es el más PODEROSO.  Puede agregar o quitar N elementos en cualquier posición,
//todo lo que retorna son ARRAYS. Digamos que parte un array en partes.

array.splice(indice, cantidad, item1, ....., itemX);
var a = [0,1,2,3,4,5,6,7,8,9];
var b = a.splice(0,1);  //b = [0], a = [1...9];
a.splice(0,0,'a','b','c'); //[a,b,c,1,2,...9] //cantidad indica cuantos pisamos
//si en vez de hacer eso hubiesemos hecho:
a.splice(0, 2,'a','b','c'); //["a", "b", "c", 3, 4, 5, 6, 7, 8, 9]

Siempre retorna la parte que corta. Soporta indices negativos!

SLICE

Slice no altera el original, y simplemente retorna fragmentos como array

array.slice(inicio, finalNoInclusivo);
por lo tanto si queremos obtener el elemento 0, habría que hacer
var b = a.slice(0,1); //b = [0]  a no se altera

SLICE con 1 solo parametro: retorna desde el indice indicado (inclusivo) hasta el final
var a = [0,1,2,3,4,5,6,7,8,9];
var b = a.slice(2);  //[2, 3, 4, 5, 6, 7, 8, 9]

SLICE sin parametros, te clona el array

var b = a.slice();  // ahora b y a son iguales, pero independientes