In JavaScript, se si imposta una matrice di dimensioni 5 (var foo = new Array(5);
), si tratta solo di una dimensione iniziale? Puoi espandere il numero di elementi dopo che è stato creato. È possibile fare qualcosa del genere - arr = new Array()
e poi semplicemente assegnare gli elementi uno per uno? Grazie in anticipo :-)Come funzionano le dimensioni degli array in Javascript
risposta
Sì, è solo una dimensione iniziale, e non è necessario. Se non si utilizza un numero singolo, è possibile popolarlo immediatamente.
È anche più comune utilizzare la sintassi più semplice []
.
var arr = ['something', 34, 'hello'];
È possibile impostare (o sostituire) un indice specifico usando le parentesi:
arr[0] = "I'm here replacing whatever your first item was";
È possibile aggiungere alla fine utilizzando push:
arr.push('add me');
Ci possono essere prestazioni più veloci in alcuni browser se lo fai invece:
arr[arr.length] = 'add me';
È possibile aggiungere qualcosa a qualsiasi indice.
È possibile rimuovere un elemento completamente con giunzione:
arr.splice(0, 1); // remove first item in the array (start at index 0, with 1 being removed)
Date un'occhiata al 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";
Quando si dà un nuovo array di dimensioni esplicita in JavaScript (utilizzando new Array(5)
), si popola ogni indice con valore undefined
. E 'generalmente considerato migliore pratica di creare un'istanza utilizzando l'array letterale []
espressione:
var arr = [];
Poi, si può spingere nuovi elementi utilizzando push()
var arr = [];
arr.push('first value'):
arr.push('second value'):
Controllare la documentazione Array MDC per ulteriori informazioni: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array
effettivo Quando scriviamo 'new Array (5)', ogni indice è ancora 'indefinito' (che è diverso da' null'). È più come fare 'var arr = []; arr.length = 5; '. –
Ah sì, indefinito anziché null. Correggerà. –
Controllare the documentation for Array, ma la semplice risposta alla tua domanda è sì.
var arr5 = new Array(1, 2, 3, 4, 5); // an array with initial 5 elements
var arr = new Array(); // an array without initial
È inoltre possibile utilizzare letterali di array:
var arr5 = [1, 2, 3, 4, 5];
var arr = [];
Volevo solo sottolineare che la versione 'new Array (5)' è ** non ** identica a '[1, 2, 3, 4, 5]'! –
@Felix, hai assolutamente ragione. Le mie giornate in Java sono iniziate. Ho aggiornato la mia risposta. –
Theres alcuni modi per dichiarare e mettere i valori in un array.
In primo luogo come quello che si vuole fare,
var myarr = new Array();
myarr[0] = 'element1';
myarr[1] = 'element2';
myarr[2] = 'element3';
secondo modo è quello di definire loro
var myarr =new Array("element1","element2","element3");
e la terza è simile alla seconda
var myarr =["element1","element2","element3"];
È inoltre possibile controllare out https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array per ulteriori informazioni sull'utilizzo degli array. Potresti usare push e pop se vuoi anche tu.
Se si utilizzano jquery o mootools, hanno anche funzioni integrate da eseguire sugli array, ad esempio http://api.jquery.com/jQuery.each/.
Gli array sono dinamici in JavaScript. Non è necessario inizializzarli con una certa lunghezza. In realtà si dovrebbe usare la notazione letterale []
causa dell'ambiguità del Array
del costruttore:
Se si passa un solo parametro per Array
, imposterà la lunghezza della matrice a questo parametro. Se si passa più di un parametro, questi elementi vengono aggiunti all'array.
Come vengono determinate le dimensioni della matrice?
La dimensione di un array è l'indice più alto + 1. Questo può essere piuttosto confuso. Considerate questo:
var arr = [];
arr[41] = 'The answer?';
console.log(arr); // [undefined, undefined, ..., 'The answer?']
console.log(arr.length) // 42
È anche possibile impostare la lunghezza da soli assegnando un numero di .length
:
arr.length = 99;
Se ora si aggiunge un nuovo elemento utilizzando arr.push()
, otterrà l'indice 100
e la lunghezza crescerà. Ogni volta che si aggiunge un elemento all'array tramite un indice, viene verificato se arr.length
è più piccolo dell'indice e aggiornato di conseguenza. Ma non diventa più piccolo.
Quindi, in effetti, ciò che sta facendo var arr = new Array(5)
consiste nell'impostare la lunghezza dell'array su 5
. Nient'altro.
Per ulteriori informazioni sulla creazione e riempire gli array, vi suggerisco di leggere su di esso nel MDC JavaScript Guide.
- 1. Come funzionano tutte le librerie Javascript OpenID?
- 2. Come funzionano le linee cache?
- 3. come funzionano gli array internamente in c/C++
- 4. Come funzionano le goroutine?
- 5. JavaScript ottieni le date sequenziali in Array
- 6. Numpy, python: espande automaticamente le dimensioni degli array durante la trasmissione
- 7. Come posso inizializzare un array senza conoscerne le dimensioni?
- 8. Come ottenere le dimensioni della memoria di un array dinamico?
- 9. Java: funzionamento degli array
- 10. Come convertire un array tipizzato JavaScript in un array JavaScript
- 11. Come posso controllare gli array JavaScript per le stringhe vuote?
- 12. Limite dimensioni degli appunti
- 13. oggetto Array-come in javascript
- 14. Come funzionano le bandiere in C?
- 15. Come funzionano le eccezioni in Haskell?
- 16. Come funzionano le patch in Git?
- 17. Come funzionano le chiusure in Haskell?
- 18. Come funzionano gli interpreti/motori JavaScript?
- 19. Bash dimensioni array associativo
- 20. Come funzionano le chiavi esterne?
- 21. Come funzionano le animazioni Android?
- 22. Come funzionano le annotazioni dell'utente?
- 23. Come funzionano le stringhe Java
- 24. Conteggio degli elementi corrispondenti in un array
- 25. Le sessioni non funzionano in Silex \ App
- 26. Quali sono le dimensioni degli indicatori di divulgazione personalizzata iOS?
- 27. Come funzionano le icone Materialize?
- 28. costruzione dinamica degli oggetti in javascript?
- 29. Spingere array in array in Javascript (jQuery)
- 30. Convertire array JavaScript di 2 array di elementi in coppie chiave-valore degli oggetti
Il [] è simile a un array anonimo? – rubixibuc
@rubixibuc: No, è un array letterale. –
Qual è la differenza tra un array letterale e un array anonimo? (sry se questa è una domanda stupida: - /) – rubixibuc