saber - splice javascript




¿Cómo puedo agregar nuevos elementos de matriz al comienzo de una matriz en Javascript? (7)

Con ES6, utilice el operador de propagación ... :

MANIFESTACIÓN

var arr = [23, 45, 12, 67];
arr = [34, ...arr]; // RESULT : [34,23, 45, 12, 67]

console.log(arr)

Tengo la necesidad de agregar o anteponer elementos al principio de una matriz.

Por ejemplo, si mi matriz se ve a continuación:

[23, 45, 12, 67]

Y la respuesta de mi llamada AJAX es 34 , quiero que la matriz actualizada sea como la siguiente:

[34, 23, 45, 12, 67]

Actualmente estoy planeando hacerlo así:

var newArray = [];
newArray.push(response);

for (var i = 0; i < theArray.length; i++) {
    newArray.push(theArray[i]);
}

theArray = newArray;
delete newArray;

¿Hay alguna manera mejor de hacer esto? ¿Javascript tiene alguna funcionalidad incorporada que hace esto?

La complejidad de mi método es O(n) y sería realmente interesante ver mejores implementaciones.


Otra forma de hacerlo a través de concat

var arr = [1, 2, 3, 4, 5, 6, 7];
console.log([0].concat(arr));

La diferencia entre concat y unshift es que concat devuelve una nueva matriz. El rendimiento entre ellos se puede encontrar here .

function fn_unshift() {
  arr.unshift(0);
  return arr;
}

function fn_concat_init() {
  return [0].concat(arr)
}

Aquí está el resultado de la prueba


Usando el número de inserción, empalme e índice , insertamos un elemento en una matriz al principio

arrName.push('newName1');
arrName.splice(0, 0,'newName1');
arrName[0] = 'newName1';

Utilice sin unshift . Es como push , excepto que agrega elementos al principio de la matriz en lugar del final.

  • unshift / push - agrega un elemento al principio / final de una matriz
  • shift / pop - elimina y devuelve el primer / último elemento de un array

Un diagrama simple ...

   unshift -> array <- push
   shift   <- array -> pop

y tabla:

          add  remove  start  end
   push    X                   X
    pop           X            X
unshift    X             X
  shift           X      X

Echa un vistazo a la documentación de la matriz MDN . Prácticamente todos los idiomas que tienen la capacidad de empujar / hacer estallar elementos de una matriz también tendrán la capacidad de cambiar / cambiar (a veces llamado push_front / pop_front ), nunca debería tener que implementarlos usted mismo.


push() agrega un nuevo elemento al final de una matriz.
pop() elimina un elemento del final de una matriz.

unshift() agrega un nuevo elemento al principio de una matriz.
shift() elimina un elemento desde el principio de una matriz.

utilizar theArray.unshift(response)


Hoja de trucos rápida:

Los términos shift / unshift y push / pop pueden ser un poco confusos, al menos para las personas que no estén familiarizadas con la programación en C.

Si no está familiarizado con la jerga, aquí hay una traducción rápida de términos alternativos, que puede ser más fácil de recordar:

* array_unshift()  -  (aka Prepend ;; InsertBefore ;; InsertAtBegin )     
* array_shift()    -  (aka UnPrepend ;; RemoveBefore  ;; RemoveFromBegin )

* array_push()     -  (aka Append ;; InsertAfter   ;; InsertAtEnd )     
* array_pop()      -  (aka UnAppend ;; RemoveAfter   ;; RemoveFromEnd ) 

var a = [23, 45, 12, 67];
a.unshift(34);
console.log(a); // [34, 23, 45, 12, 67]





arrays