¿Cuál es la forma más fácil de insertar un nuevo objeto en una matriz de objetos en la posición de índice 0? No jQuery; MooTools está bien; no unshift()
porque es undefined
en IE según w3schools.Conjuntos de JavaScript
Respuesta
W3CSchools es muy anticuado, el método unshift
es parte de la norma ECMAScript 3rd Edition que fue aprobada y publicada en diciembre de 1999.
Hay es sin razón para evitarlo hoy en día, es compatible con IE 5.5.
Es seguro usarlo, incluso las bibliotecas modernas como jQuery o MooTools lo usan internamente (puede verificar el código fuente :).
var array = [2,3];
array.unshift(1); // returns 3
// modifies array to [1, 2, 3]
Este método devuelve la nueva longitud de la matriz, e inserta el elemento pasado como argumento en la primera posición de la matriz.
-1 Porque el OP específicamente solicitó "no' unshift() '" –
Chicos, hay no hay razón para evitar 'unshift' ... – CMS
El interlocutor no especifica' unshift' porque w3schools dice que no está soportado en IE. Como @CMS señala, eso está desactualizado: w3schools ni siquiera * rastrea * IE <6 market share. –
Usando el método splice.
array.splice(index,howmany,element1,.....,elementX);
Para insertar, 'howmany' = 0
'unshift' y' concat' son más simples que 'splice' para lo que @JamesBrownIsDead quiere hacer. –
@Dominic, muy cierto de hecho. Supongo que solo soy 'flojo' para recordar diferentes métodos y solo los más genéricos: P –
@okw splice es bueno :) –
Puede probar esto:
var newItem = 3;
arr = [newItem].concat(arr);
Otra opción es utilizar push
y revertir los índices - se puede escribir fácilmente un objeto que hace eso.
usaría unshift()
si su intención es la de modificar la matriz, de lo contrario se puede utilizar concat()
como se sugiere Kobi (que devuelve una nueva matriz y no modifica las matrices involucradas):
var arr = [1, 2], newItem = 3;
var newArr = [newItem].concat(arr); // newArr = [1, 2, 3], arr still = [1, 2]
Ver: concat
- 1. Conjuntos de JavaScript llaves contra soportes
- 2. Javascript conjuntos escritos "sobre el alambre"
- 3. ¿Está JavaScript listo para visualizar grandes conjuntos de datos?
- 4. Evaluar expresiones de conjuntos
- 5. Actualizar conjuntos de marcadores
- 6. Conjuntos de datos grandes
- 7. Conjuntos de cadenas constantes
- 8. Comprobación de conjuntos de estantes
- 9. módulo de conjuntos de advertencia
- 10. Conjuntos de cadenas en C
- 11. TFS: comparar conjuntos de cambios
- 12. Conjuntos de amigos en C#
- 13. StructureMap y conjuntos de escaneo
- 14. Agregar elementos de dos conjuntos
- 15. definición de conjuntos en ocaml
- 16. Demasiados conjuntos dinámicos
- 17. Python Conjuntos vs Listas
- 18. Android - ¿Conjuntos Hindi Support?
- 19. Conjuntos asociativos y Java
- 20. Conjuntos en Ruby?
- 21. csc.exe y conjuntos dependientes
- 22. MongoDB conjuntos anidados
- 23. Conjuntos mutables en NSManagedObjects?
- 24. enumerando conjuntos en GAC
- 25. Conjuntos de Javascript - Comprobando dos matrices de objetos para el mismo contenido, ignorando el orden
- 26. Jasmine: defina conjuntos de archivos de origen separados para Rails?
- 27. Dados N conjuntos de elementos, encuentre una unión mínima de conjuntos M
- 28. Mi alernative a conjuntos anidados para conjuntos de datos jerárquicos de profundidad arbitraria: ¿Bueno o malo?
- 29. Colección de conjuntos que no contienen conjuntos que son un subconjunto de otro en la colección
- 30. Conjuntos de datos fuertemente tipados contra conjuntos de datos débilmente tipados
Probablemente recibirás respuestas diciendo "¿has probado jquery?". :) – Alconja
@JamesBrownIsDead, ¿Has probado jQuery? Tu realmente deberías. : P: P –
@CMS es correcto: 'unshift' funciona en IE: http://jsbin.com/umolo – Kobi