saber objetos length for existe elementos elemento contar array agregar javascript arrays

objetos - ¿Cómo puedo agregar nuevos elementos de matriz al comienzo de una matriz en Javascript?



saber si un elemento existe en un array javascript (10)

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


Si necesita insertar continuamente un elemento al comienzo de una matriz, es más rápido usar instrucciones push seguidas de una llamada para reverse , en lugar de llamar sin unshift todo el tiempo.

Prueba de referencia: http://jsben.ch/kLIYf


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.


tiene una matriz: var arr = [23, 45, 12, 67];

Para agregar un elemento al principio, desea utilizar el splice :

var arr = [23, 45, 12, 67]; arr.splice(0, 0, 34) console.log(arr);


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 testdata = new Array(); testdata = [23, 45, 12, 67]; testdata = [34, ...testdata]; console.log(testdata)


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