LA CAMPANA

C’è chi ha letto questa notizia prima di te.
Iscriviti per ricevere nuovi articoli.
E-mail
Nome
Cognome
Come vuoi leggere La Campana?
Niente spam

Nell'articolo precedente abbiamo parlato di cos'è e come lavorarci. In questo articolo parleremo di array multidimensionale.

Si tratta di un array i cui uno o più elementi sono anche array. A seconda della profondità della dichiarazione, in particolare potrà essere chiamato array bidimensionale (2 livelli) oppure array tridimensionale (3 livelli) oppure array quadridimensionale (4 livelli) e così via.

Il più popolare, dopo l'array unidimensionale, che viene utilizzato più spesso è l'array bidimensionale. Studiamo questo in modo più dettagliato.


Come puoi vedere, gli elementi di un array bidimensionale sono array unidimensionali. Se questi array unidimensionali contenessero più array, l'array arr sarebbe già tridimensionale.

Ad esempio, creiamo tre semplici array e riempiamoli di dati. Riempiremo il primo con numeri pari, il secondo con numeri dispari e il terzo con alcuni dati arbitrari.

//Dichiara tre array vuoti var evenNumbers = new Array(); //Variabile k - per gli indici di array evenNumbers var k = 0; var oddNumbers = new Array(); //Variabile n - per indici di array oddNumbers var n = 0; var data = new Array("auto", "aereo", true, 89, "m"); //Riempi l'array evenNumbers con numeri pari for(var i = 1; i

Per vedere cosa c'è all'interno dell'array, puoi utilizzare uno strumento come console .

Ad esempio, vogliamo vedere il contenuto di un array con numeri dispari oddNumbers. Per fare ciò, scrivi la seguente riga nel codice seguente:

Console.log(Numeridispari);

Per vedere il risultato, è necessario aprire la console nel browser. In Google Chrome si fa così: fare clic con il tasto destro sulla pagina e dal menu contestuale selezionare l'ultima opzione "Visualizza codice", cioè l'ispettore. Nella versione inglese, questa opzione si chiama Ispeziona.


E la barra degli strumenti per sviluppatori apparirà di seguito. In esso devi andare alla scheda Console.


Ora, per creare un array bidimensionale, devi dichiararlo e aggiungervi gli array unidimensionali che hai creato sopra.

//Dichiara un array bidimensionale twoDimens e riempilo var twoDimens = new Array(evenNumbers, oddNumbers, data); console.log(dueDimens);

Diamo un'occhiata alla console per il contenuto di questo array.


iterando su un array bidimensionale

Innanzitutto, impariamo come accedere agli elementi di un array bidimensionale.

Come con gli array singoli, si accede agli elementi tramite i loro indici.

Ad esempio, visualizziamo l'elemento con indice 3 dall'array con numeri dispari (oddNumbers). L'indice dell'array unidimensionale oddNumbers nell'array bidimensionale twoDimens è uno(1).

Document.write("L'elemento all'indice 3 dell'array di numeri dispari oddNumbers è: " + twoDimens); // Elemento: 7

Nell'array twoDimens, accediamo all'elemento nell'indice 1. L'elemento che si trova in quell'indice è l'array oddNumbers. E in questo array stiamo già accedendo all'elemento con indice 3, che è il numero 7.

Ora passiamo alla questione di come eseguire l'iterazione su un array bidimensionale.

L'iterazione su un array bidimensionale viene eseguita utilizzando un doppio ciclo. Ad esempio, iteriamo attraverso il nostro array twoDimens.

For(var i = 0; i< twoDimens.length; i++){ for(var j = 0; j < twoDimens[i].length; j++){ document.write("

Un elemento con indice " + i + " " + j + " è uguale a: " + twoDimens[i][j] + "

"); } }

Nel primo ciclo, iteriamo sull'array twoDimens stesso. Nel secondo ciclo stiamo già iterando sull'elemento stesso (array). Innanzitutto, la variabile i è uguale a 0. Pertanto, nel secondo ciclo, iteriamo prima sul primo array evenNumbers, che ha indice 0. E già all'interno del secondo ciclo, accediamo agli elementi di questo array. Quindi: twoDimens[j]. Dove j varia da 0 alla lunghezza dell'array evenNumbers.

Dopo aver ripetuto gli elementi del primo array, torniamo al primo ciclo, incrementiamo la variabile i e passiamo all'iterazione sul secondo array oddNumbers, che ha indice 1. E così enumeriamo ogni elemento dell'array bidimensionale due dimensioni.

Ora diamo un'occhiata al risultato di questa ricerca:


Questo è tutto ciò di cui volevo parlare in questo articolo. Ora sai come creare un array bidimensionale, come accedere agli elementi di un array bidimensionale e come scorrere un array bidimensionale. Spero che tutto sia stato chiaro. Ti auguro un grande successo!

Buona giornata a tutti. Alexey Gulynin è in contatto. Nell'ultimo articolo abbiamo esaminato la costruzione del caso dello switch in Javascript. In questo articolo vorrei raccontarti cosa sono gli array in Javascript. Il concetto di array gioca un ruolo importante non solo in Javascript, ma in tutta la programmazione. Una variabile, come un array, non contiene un elemento, ma diversi. La sintassi per creare un array è la seguente:

Var mas = new Array(valore1, valore2,..., valoreN);

In questo caso viene creata una variabile array mas con i valori indicati tra parentesi. Tieni presente che l'array viene creato utilizzando la nuova parola chiave. È possibile accedere agli elementi di un array specificando il nome e l'indice dell'array tra parentesi quadre. L'indice dell'array è impostato da zero. Diamo un esempio di un array composto da 4 elementi e visualizziamo il 2° elemento:

var mas = new Array("privet", 1, 10, 5); document.write("Secondo elemento dell'array = "+mas); // verrà visualizzato il numero 10

Se inseriamo mas , verrà stampato "privet", poiché l'indicizzazione dell'array inizia da zero. Vediamo ora come visualizzare tutti gli elementi di un array. Per fare ciò è necessario utilizzare un loop. Oltre a conoscere i loop in Javascript, è necessario conoscere la proprietà length degli array, che restituisce il numero di elementi dell'array (o, in altre parole, la sua lunghezza). Stampiamo la lunghezza dell'array mas:

var mas = new Array("privet", 1, 10, 5); document.write("Lunghezza dell'array = "+mas.length); // verrà visualizzato il numero 4

Stampa di tutti gli elementi dell'array:

var mas = new Array("privet", 1, 10, 5); var i; per (i = 0; i< mas.length; i++) document.write(mas[i]+" ");

Finora abbiamo esaminato gli array unidimensionali. In generale, gli array possono essere multidimensionali. La cosa principale che devi capire è che, ad esempio, un array bidimensionale è un array i cui elementi sono array. Diamo un'occhiata a questo problema: è necessario creare un array bidimensionale 3 per 3, i cui elementi sono specificati dall'utente, e generare questo array. Qui utilizzeremo l'operatore prompt per richiedere un numero all'utente:

var mas = nuovo Array(); //dichiara l'array const n = 3; //dichiara una costante, cioè Il nostro array ha una dimensione di 3 x 3 //per definire un array bidimensionale, è necessario utilizzare un doppio ciclo var i; var j; per (i = 0; i< n; i++) { mas[i] = new Array();//Здесь мы как раз каждый элемент массива делаем массивом for (j = 0; j < n; j++) { mas[i][j] = prompt("[" + i +","+j+"]= " ,"..."); //запрашиваем число у пользователя } } for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { document.write("[" + i +","+j+"]= "+ mas[i][j]);} //выводим элемент массива document.write("
"); // va a una nuova riga dopo ogni riga riempita dell'array)

Nel nostro caso, un array bidimensionale corrisponde (ad esempio) alla seguente struttura: mas=[,,] . Puoi vedere che l'array ha 3 elementi, ognuno dei quali è un array stesso.

Inizialmente, il compito di Javascript era quello di creare siti web dinamici. Nella mia pratica, non ho mai utilizzato array bidimensionali, solo unidimensionali, quindi la conoscenza degli array che hai ricevuto da questo articolo sarà più che sufficiente. In uno dei seguenti articoli parlerò dell'oggetto Array, delle sue proprietà e dei suoi metodi.

Un saluto a tutti coloro che sono interessati all'argomento degli array multidimensionali e dell'ordinamento JavaScript. Nella presente pubblicazione cercherò di trattare questo argomento in dettaglio.

Pertanto, dopo aver letto l'articolo, imparerai perché gli array multidimensionali vengono utilizzati nelle applicazioni web, come vengono creati e come possono essere gestiti e ordinati. Iniziamo a imparare!

Come vengono creati gli array multidimensionali e a cosa servono?

Per cominciare, vale la pena ricordare come viene creato un normale array unidimensionale.

matrice var =

Ora ricorda che un array multidimensionale è un array di array. Sono d'accordo, sembra una tautologia. Tuttavia, leggi di nuovo la definizione. In effetti, un array multidimensionale è costituito da un certo numero di elementi annidati.

Considera la seguente situazione. All'inizio di un determinato gioco, l'utente inserisce il suo nome e, al termine, sul suo schermo viene visualizzata una tabella di valutazione con i nomi dei giocatori e i loro record.

È chiaro che tali informazioni sono archiviate in un database. Ma quando lo estraiamo dal database, otteniamo un array multidimensionale. Dopotutto, ogni sottoarray memorizza il login del giocatore e il numero di punti segnati.

Sembrerà tutto così:

var risultati = [ ["Marcus", 333], ["Natasha", 211], ["Alexey", 124] ];

Come puoi vedere, è possibile archiviare informazioni eterogenee. Possono essere stringhe, numeri e persino file . Ciò è possibile perché gli array non sono tipizzati.

In questo caso l'accesso agli elementi avviene tramite un doppio operatore.

Per consolidare il materiale, analizzare un piccolo programma.

Valore dei risultati =

var risultati = [ ["Marcus", 333], ["Natasha", 211], ["Alexey", 124] ]; document.getElementById("demo").innerHTML = risultati;

Gli array sono un mezzo abbastanza conveniente per archiviare dati complessi ordinati durante l'elaborazione. Inoltre, è molto comodo lavorare con loro e allo stesso tempo la loro velocità di elaborazione è piuttosto elevata.

Modi per ordinare i dati

JavaScript ha un metodo integrato per gli array chiamato sort(). Questo strumento è molto flessibile. E ora ti spiegherò perché.

Se si utilizza il metodo senza parametri, ordina automaticamente i sottoarray in base al primo elemento in ordine alfabetico. Quindi, quando si chiamano i risultati. sort(), l'oggetto analizzato sarà simile a questo:

Alessio, 124

Marco, 333

Natascia, 211

E se scambi gli elementi in ciascun array nidificato, ottieni:

124, Alessio

211, Natascia

333, Marco

In questo caso, per confronto, tutti gli elementi vengono temporaneamente convertiti in stringhe.

Se, per risolvere un problema specifico, hai bisogno di una funzione che ordini gli elementi in modo non standard, puoi scriverla tu stesso e passarla come parametro a sort(). Vale la pena considerare che la funzione definita dall'utente deve restituire:

  • un numero positivo (solitamente si sceglie 1) se il primo elemento specificato viene dopo il secondo nel confronto;
  • un numero negativo (solitamente -1) se il secondo elemento selezionato deve seguire il primo;
  • null se i due valori in prova sono uguali.

Ad esempio, ordiniamo la matrice dei risultati iniziali in base ai punti. Inoltre, i risultati verranno ordinati dal più grande al più piccolo. Questo può essere fatto in due modi.

Nella prima versione, ho cambiato la logica di ordinamento, ad es. in una situazione in cui è necessario restituire un numero positivo, restituisco uno negativo e viceversa.

Tabella delle registrazioni:

var risultati = [ ["Marcus", 333], ["Natasha", 211], ["Alexey", 124] ]; risultati.sort(RecordSort); funzione RecordSort(a, b) ( if (a > b) return -1; altrimenti if (a< b) return 1; else return 0; } for(var i=0; i b) return 1; else if (a < b) return -1; else return 0; }

funzione RecordSort(a, b) ( se (a > b) restituisce 1; altrimenti se (a< b) return -1; else return 0; }

Ma dopo aggiungeremo il metodo sopra.

Il ritiro viene effettuato allo stesso modo.

Vorrei attirare la vostra attenzione su un punto importante. Quando si utilizzano queste funzioni, tutte le modifiche si verificano nell'array a cui le si applica. Pertanto, se è necessario preservare l'aspetto originale dei dati, crearne una copia e quindi modificarla.

Bene, quindi ho parlato di array multidimensionali e del loro ordinamento. Se ti è piaciuto l'articolo, iscriviti al blog e leggi altre pubblicazioni altrettanto interessanti. Sarò grato per i repost. Ci vediamo di nuovo!

Ciao ciao!

Cordiali saluti, Roman Chueshov

  • I. Iterazione su array reali
  • metodo forEach e metodi correlati
  • per ciclo
  • Uso corretto del ciclo for...in
  • ciclo for...of (uso implicito dell'iteratore)
  • Uso esplicito dell'iteratore
  • Utilizzo di metodi per eseguire iterazioni su array reali
  • Converti in un array reale
  • Una nota sugli oggetti runtime
I. Iterazione su array reali Al momento, ci sono tre modi per eseguire l'iterazione sugli elementi di un array reale:
  • metodo Array.prototype.forEach ;
  • classico ciclo for
  • un ciclo for...in costruito “correttamente”.
  • Inoltre, presto, con l'avvento del nuovo standard ECMAScript 6 (ES 6), sono attesi altri due metodi:
  • ciclo for...of (uso implicito dell'iteratore);
  • uso esplicito dell'iteratore.
  • 1. Il metodo forEach e metodi correlati Se il tuo progetto è progettato per supportare le funzionalità dello standard ECMAScript 5 (ES5), puoi utilizzare una delle sue innovazioni: il metodo forEach.

    Esempio di utilizzo:
    var a = ["a", "b", "c"]; a.forEach(funzione(voce) ( console.log(voce); ));
    In generale, l'utilizzo di forEach richiede la connessione della libreria di emulazione es5-shim per i browser che non supportano nativamente questo metodo. Questi includono IE 8 e versioni precedenti, che sono ancora in uso in alcuni luoghi.

    Il vantaggio di forEach è che non è necessario dichiarare variabili locali per memorizzare l'indice e il valore dell'elemento corrente dell'array, poiché vengono automaticamente passati alla funzione callback come argomenti.

    Se sei preoccupato per il possibile costo di una richiamata su ciascun elemento, non preoccuparti e leggi questo.

    ForEach è progettato per eseguire l'iterazione su tutti gli elementi di un array, ma in aggiunta a ciò, ES5 offre diversi metodi più utili per eseguire l'iterazione su tutti o alcuni elementi oltre a eseguire alcune azioni su di essi:

    • ogni - restituisce true se per ciascun elemento dell'array il callback restituisce un valore che può essere convertito in true.
    • some - restituisce vero se per almeno un elemento dell'array il callback restituisce un valore che può essere convertito in vero.
    • filter: crea un nuovo array che include quegli elementi dell'array originale per i quali il callback restituisce true .
    • map - crea un nuovo array costituito dai valori restituiti dal callback.
    • reduce - riduce un array a un singolo valore, applicando un callback a turno a ciascun elemento dell'array, iniziando dal primo (può essere utile per calcolare la somma degli elementi dell'array e altre funzioni di riepilogo).
    • reduceRight: funziona in modo simile a reduce, ma scorre gli elementi in ordine inverso.
    2. Per il ciclo Buon vecchio per le regole:

    Var a = ["a", "b", "c"]; indice var; per (indice = 0; indice< a.length; ++index) { console.log(a); }
    Se la lunghezza dell'array è costante in tutto il ciclo e il ciclo stesso appartiene a una sezione di codice critica per le prestazioni (cosa improbabile), è possibile utilizzare una versione "più ottimale" di for che memorizza la lunghezza dell'array :

    Var a = ["a", "b", "c"]; indice var, lente; for (indice = 0, len = a.lunghezza; indice< len; ++index) { console.log(a); }
    In teoria, questo codice dovrebbe essere un po' più veloce del precedente.

    Se l'ordine degli elementi non è importante, puoi andare ancora oltre in termini di ottimizzazione ed eliminare la variabile per memorizzare la lunghezza dell'array, cambiando l'ordine di ricerca al contrario:

    Var a = ["a", "b", "c"]; indice var; for (indice = a.lunghezza - 1; indice >= 0; --index) ( console.log(a); )
    Tuttavia, nei moderni motori JavaScript tali giochi di ottimizzazione di solito non significano nulla.

    3. Uso corretto di un ciclo for...in Se ti viene consigliato di utilizzare un ciclo for...in, ricorda che l'iterazione sugli array non è lo scopo per cui è previsto. Contrariamente a un malinteso comune, il ciclo for...in non esegue l'iterazione sugli indici dell'array, ma piuttosto sulle proprietà enumerabili di un oggetto.

    Tuttavia, in alcuni casi, come l'iterazione su array sparsi, for...in può essere utile, purché si prendano precauzioni, come mostrato nell'esempio seguente:

    // a - array sparso var a = ; un = "un"; a = "b"; a = "c"; for (var key in a) ( if (a.hasOwnProperty(key) && /^0$|^\d*$/.test(key) && key

    LA CAMPANA

    C’è chi ha letto questa notizia prima di te.
    Iscriviti per ricevere nuovi articoli.
    E-mail
    Nome
    Cognome
    Come vuoi leggere La Campana?
    Niente spam