- Tutto può essere utilizzato come una chiave in una mappa.
- Le mappe sono ordinate e consentono l'iterazione.
Combinando 1 e 2, quando si itera su una mappa, si otterrà un utile insieme di coppie chiave-valore!
Verificare il map.prototype.forEach()
documentation.
Fonte: Un'altra buona domanda/risposta exchange. Vale la pena contrassegnare questo come un duplicato.
Aggiornamento: Aggiungendo a questa risposta per affrontare la questione direttamente:
si dovrebbe usare una mappa ogni volta che è necessario associare le cose insieme o preservare ordine di inserimento (strutture di dati comuni hanno bisogno di questo).
È possibile utilizzare un oggetto quando non è necessario farlo, ma si limitano a fare cose diverse.
Aggiornamento 2: OP ha chiesto se le funzioni sono troppo bene. Sì, perché i valori possono essere anche funzioni! Check it out:
let x = new Map();
let y =() => {
console.log('derp');
}
x.set(y, "HI");
console.log(x.get(y)); //will log "HI"
Per maggiori informazioni, controlla la fonte di questa citazione, in un grande capitolo di Eloquent JavaScript:
"Ogni valore ha un tipo che determina il suo ruolo Ci sono sei tipi di base di. valori in JavaScript: numeri, stringhe, booleani, oggetti, funzioni e valori non definiti. "
Inoltre, le principali differenze tra Mappa e oggetto, da MDN, sotto l'intestazione "oggetti e mappe Rispetto":
- un oggetto è un prototipo, quindi non ci sono tasti predefiniti nella mappa . Tuttavia, questo può essere aggirato usando map = Object.create (null).
- Le chiavi di un oggetto sono stringhe, dove possono essere qualsiasi valore per una mappa.
- È possibile ottenere facilmente le dimensioni di una mappa mentre è necessario tenere traccia manualmente delle dimensioni di un oggetto.
Ancora, le chiavi possono essere qualsiasi valore!
fonte
2015-05-26 08:26:42
Qualcosa? Anche funzioni? – Vandervals
Sì! Dai un'occhiata alla risposta aggiornata! –
Potresti spiegarmi cosa fa questa linea? 'let y =() => {' – Vandervals