In JavaScript, un array è una struttura simile a una lista, senza lunghezza fissa, che può contenere qualsiasi tipo di valore primitivo o di oggetto, anche di tipi misti.
Per creare un array, aggiungi gli elementi tra parentesi quadre ([]).
Per leggere dall'array, metti l'indice tra parentesi quadre ([]) dopo l'identificatore.
Gli indici di un array partono da zero.
Ad esempio:
const numbers = [1, 'two', 3, 'four'];
numbers[2];
// => 3
Per ottenere il numero di elementi contenuti in un array, usa la proprietà length:
const numbers = [1, 'two', 3, 'four'];
numbers.length;
// => 4
Per modificare un elemento dell'array, assegni un valore in corrispondenza dell'indice:
const numbers = [1, 'two', 3, 'four'];
numbers[0] = 'one';
numbers;
// => ['one', 'two', 3, 'four']
Alcuni dei metodi disponibili su ogni oggetto Array si possono usare per aggiungere o rimuovere elementi dall'array. Ecco quelli da tenere presenti mentre lavori su questo esercizio:
Un value può essere aggiunto alla fine di un array usando .push(value).
Il metodo restituisce la nuova lunghezza dell'array.
const numbers = [1, 'two', 3, 'four'];
numbers.push(5); // => 5
numbers;
// => [1, 'two', 3, 'four', 5]
L'ultimo value può essere rimosso da un array usando .pop().
Il metodo restituisce il valore rimosso.
La lunghezza dell'array diminuirà per effetto di questa modifica.
const numbers = [1, 'two', 3, 'four'];
numbers.pop(); // => four
numbers;
// => [1, 'two', 3]
Il primo value può essere rimosso da un array usando .shift().
Il metodo restituisce il valore rimosso.
La lunghezza dell'array diminuirà per effetto di questa modifica.
const numbers = [1, 'two', 3, 'four'];
numbers.shift(); // => 1
numbers;
// => ['two', 3, 'four']
Un value può essere aggiunto all'inizio di un array usando .unshift(value).
Il metodo restituisce la nuova lunghezza dell'array.
const numbers = [1, 'two', 3, 'four'];
numbers.unshift('one'); // => 5
numbers;
// => ['one', 1, 'two', 3, 'four']
Un value in corrispondenza di uno index specifico può essere rimosso da un array usando .splice(index, 1).
Il metodo restituisce l'elemento o gli elementi rimossi.
const numbers = [1, 'two', 3, 'four'];
numbers.splice(2, 1, 'one'); // => [3]
numbers;
// => [1, 'two', 'one', 'four']
Questi metodi sono più potenti di quanto descritto:
push che unshift permettono di aggiungere più valori in una volta sola, passando altri argomenti.
Non è necessario per completare questo esercizio.deleteCount.
Si può usare per sostituire valori o inserirne nel mezzo di un array (ad esempio rimuovendo 0 elementi).
Non è necessario per completare questo esercizio.Elyse, aspirante maga, deve esercitarsi con le basi. Ha un mazzo di carte che vuole manipolare.
Per rendere le cose un po' più semplici usa solo le carte da 1 a 10, così il suo mazzo di carte può essere rappresentato da un array di numeri. La posizione di una certa carta corrisponde all'indice nell'array. Questo significa che la posizione 0 si riferisce alla prima carta, la posizione 1 alla seconda e così via.
Tutte le funzioni tranne due devono aggiornare l'array di carte e poi restituire l'array modificato: un modo di lavorare molto comune noto come pattern Builder, che permette di concatenare le funzioni una dietro l'altra in modo elegante.
Le due eccezioni sono getItem, che deve restituire la carta nella posizione indicata, e checkSizeOfStack, che deve restituire true se la dimensione indicata corrisponde.
Per pescare una carta, restituisci la carta all'indice position del
mazzo indicato.
const position = 2;
getItem([1, 2, 4, 1], position);
// => 4
Con un po' di giochi di prestigio, scambia la carta all'indice position
con la carta sostitutiva fornita.
Restituisci il mazzo aggiornato.
const position = 2;
const replacementCard = 6;
setItem([1, 2, 4, 1], position, replacementCard);
// => [1, 2, 6, 1]
Fai apparire una carta inserendo una nuova carta in cima al mazzo. Restituisci il mazzo aggiornato.
const newCard = 8;
insertItemAtTop([5, 9, 7, 1], newCard);
// => [5, 9, 7, 1, 8]
Fai sparire una carta rimuovendo dal mazzo la carta nella position indicata.
Restituisci il mazzo aggiornato.
const position = 2;
removeItem([3, 2, 6, 4, 8], position);
// => [3, 2, 4, 8]
Fai sparire una carta rimuovendo la carta in cima al mazzo. Restituisci il mazzo aggiornato.
removeItemFromTop([3, 2, 6, 4, 8]);
// => [3, 2, 6, 4]
Fai apparire una carta inserendo una nuova carta in fondo al mazzo. Restituisci il mazzo aggiornato.
const newCard = 8;
insertItemAtBottom([5, 9, 7, 1], newCard);
// => [8, 5, 9, 7, 1]
Fai sparire una carta rimuovendo la carta in fondo al mazzo. Restituisci il mazzo aggiornato.
removeItemAtBottom([8, 5, 9, 7, 1]);
// => [5, 9, 7, 1]
Controlla se la dimensione del mazzo è uguale a stackSize oppure no.
const stackSize = 4;
checkSizeOfStack([3, 2, 6, 4, 8], stackSize);
// => false
Iscriviti a Exercism per imparare e padroneggiare JavaScript con 37 concetti159 esercizi e il mentoring di persone reali, tutto gratis.