En JavaScript, si establece una matriz para que sea del tamaño 5 (var foo = new Array(5);
), ¿es solo un tamaño inicial? ¿Puedes expandir la cantidad de elementos después de crearlos? ¿Es posible hacer algo como esto también - arr = new Array()
y luego simplemente asignar elementos uno por uno? Gracias de antemano :-)¿Cómo funcionan los tamaños de matriz en Javascript?
Respuesta
Sí, es simplemente un tamaño inicial, y no se requiere. Si no usa un solo número, puede completarlo inmediatamente.
También es más común utilizar la sintaxis []
más simple.
var arr = ['something', 34, 'hello'];
Puede ajustar (o cambiar) un índice específico mediante el uso de paréntesis:
arr[0] = "I'm here replacing whatever your first item was";
Puede agregar hasta el final mediante el uso de empuje:
arr.push('add me');
Puede haber un rendimiento más rápido en algunos navegadores, si lo hace de esta manera:
arr[arr.length] = 'add me';
Puede agregar algo en cualquier índice.
Usted puede eliminar un elemento completamente el uso de empalme:
arr.splice(0, 1); // remove first item in the array (start at index 0, with 1 being removed)
Para consultar todas http://www.w3schools.com/js/js_obj_array.asp
var myCars=new Array(); // regular array (add an optional integer
myCars[0]="Saab"; // argument to control array's size)
myCars[1]="Volvo";
myCars[2]="BMW";
Cuando des una nueva matriz un tamaño explícito en javascript (usando new Array(5)
), se rellenan de cada índice con valor de undefined
. En general, se considera mejor práctica para crear una instancia utilizando la matriz literal []
expresión:
var arr = [];
A continuación, se puede insertar nuevos elementos utilizando push()
var arr = [];
arr.push('first value'):
arr.push('second value'):
Mira la documentación de matriz MDC para obtener más información: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array
real Al escribir 'new Array (5)', cada índice todavía está 'undefined' (que es diferente de' null'). Es más como hacer 'var arr = []; arr.length = 5; '. –
Ah sí, indefinido en lugar de nulo. Corregirá –
Compruebe the documentation for Array, pero la respuesta simple a su pregunta es sí.
var arr5 = new Array(1, 2, 3, 4, 5); // an array with initial 5 elements
var arr = new Array(); // an array without initial
También puede utilizar literales de matriz:
var arr5 = [1, 2, 3, 4, 5];
var arr = [];
Solo quería enfatizar que la 'nueva versión de Array (5)' es ** no ** idéntica a '[1, 2, 3, 4, 5]'! –
@Felix, tienes toda la razón. Mis días de Java se activaron. He actualizado mi respuesta. –
Hay un par de formas de declarar y poner valores en una matriz.
En primer lugar, como lo que quiere hacer,
var myarr = new Array();
myarr[0] = 'element1';
myarr[1] = 'element2';
myarr[2] = 'element3';
segunda manera es definirlos
var myarr =new Array("element1","element2","element3");
y la tercera es similar a la segunda
var myarr =["element1","element2","element3"];
También puede comprobar https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array para obtener un poco más de información sobre el uso de las matrices también. Podrías usar push y pop si quisieras también.
Si usa jquery o mootools, también tienen funciones incorporadas para realizar en matrices, http://api.jquery.com/jQuery.each/ por ejemplo.
Las matrices son dinámicas en JavaScript. No tiene que inicializarlos con una cierta longitud. De hecho, usted debe usar la notación literal []
debido a la ambigüedad de la Array
del constructor:
Si pasa un solo parámetro a Array
, fijará la longitud del arreglo a este parámetro. Si pasa más de un parámetro, estos elementos se agregan a la matriz.
¿Cómo se determina el tamaño de la matriz?
El tamaño de una matriz es el índice más alto + 1. Esto puede ser bastante confuso. Considere esto:
var arr = [];
arr[41] = 'The answer?';
console.log(arr); // [undefined, undefined, ..., 'The answer?']
console.log(arr.length) // 42
Incluso puede configurar la longitud a sí mismo mediante la asignación de un número a .length
:
arr.length = 99;
Si ahora añade un nuevo elemento utilizando arr.push()
, se obtendrá el índice 100
y la longitud incrementará. Cada vez que agrega un elemento a la matriz a través de un índice, se prueba si arr.length
es más pequeño que el índice y se actualiza en consecuencia. Pero no se hace más pequeño.
De hecho, lo que var arr = new Array(5)
está haciendo es establecer la longitud de la matriz en 5
. Nada más.
Para obtener más información sobre cómo crear y poblar matrices, sugiero leer sobre él en el MDC JavaScript Guide.
- 1. ¿Cómo funcionan los intérpretes/motores de JavaScript?
- 2. ¿Cómo se especifican los tamaños de PDF?
- 3. ¿Cómo funcionan los motores de plantillas en JavaScript?
- 4. ¿Cómo funcionan los "contextos de ejecución múltiple" de Javascript?
- 5. ¿Tamaños de matriz dinámicos de Java?
- 6. Javascript: confundido acerca de cómo funcionan los bucles anidados
- 7. ¿Cómo funcionan los hashes en la programación?
- 8. ¿Cómo funcionan los greenlets?
- 9. ¿Cómo funcionan los "criterios" de Mongoid?
- 10. ¿Cómo funcionan los videos de transmisión?
- 11. Javascript ¿Los eventos no funcionan en Tablet-pc?
- 12. Error de segmentación en tamaños de matriz grande
- 13. ¿Cómo cambio todos los tamaños de fuente en Eclipse?
- 14. ¿Cómo funcionan los perfiladores .NET?
- 15. ¿Cómo funcionan los Suffix Trees?
- 16. ¿Cómo funcionan los frameworks simulados?
- 17. ¿Cómo funcionan los índices compuestos?
- 18. ¿Cómo funcionan los Intents internamente?
- 19. ¿Cómo funcionan realmente los mutexes?
- 20. ¿Cómo funcionan los llaveros rsa?
- 21. ¿Cómo funcionan los destructores virtuales?
- 22. ¿Cómo funcionan los modelos Django?
- 23. ¿Cómo funcionan los servidores web?
- 24. Python: cómo funcionan los conjuntos
- 25. ¿Cómo funcionan los analizadores LL (*)?
- 26. ¿Cómo funcionan los punteros compartidos?
- 27. ¿Cómo funcionan los eventos débiles?
- 28. ¿Cómo funcionan exactamente los ejecutables?
- 29. Cómo funcionan los genéricos en C++/CX
- 30. ¿Cómo funcionan los índices en las vistas?
¿Es [] como una matriz anónima? – rubixibuc
@rubixibuc: No, es una matriz literal. –
¿Cuál es la diferencia entre una matriz literal y una matriz anónima? (sry si esta es una pregunta tonta: - /) – rubixibuc