Qualsiasi punto nell'utilizzo di ES6 Map quando le chiavi sono tutte stringhe?

31

Le chiavi degli oggetti semplici devono essere stringhe, mentre una Map può avere chiavi di qualsiasi tipo.

Ma in pratica non mi serve molto. In quasi tutti i casi, mi trovo comunque ad usare le stringhe come chiavi. E presumibilmente new Map() è più lento di {} . Quindi c'è qualche altra ragione per cui potrebbe essere meglio usare un Map invece di un oggetto semplice?

    
posta callum 05.06.2015 - 00:47
fonte

2 risposte

37

Ci sono alcuni motivi per cui preferisco usare Map s su oggetti semplici ( {} ) per memorizzare i dati di runtime (cache, ecc.):

  1. La proprietà .size mi consente di sapere quante voci esistono in questa mappa;
  2. I vari metodi di utilità - .clear() , .forEach() , ecc.
  3. Mi forniscono gli iteratori per impostazione predefinita!

Ogni altro caso, come passare gli argomenti delle funzioni, memorizzare le configurazioni e così via, sono tutti scritti usando oggetti semplici.

Inoltre, ricorda: non cercare di ottimizzare il tuo codice troppo presto. Non sprecare il tuo tempo a fare benchmark di plain object contro Maps a meno che il tuo progetto non abbia problemi di prestazioni.

    
risposta data 22.07.2015 - 22:23
fonte
3

Non ne sono sicuro, ma ritengo che la performance NON sia un motivo per utilizzare Maps. Dai un'occhiata a questa pagina jsperf aggiornata:

link

Sembra che (quando si ha a che fare con le stringhe almeno) gli oggetti siano molto più veloci delle mappe per l'impostazione di base e il recupero.

    
risposta data 16.02.2016 - 22:55
fonte

Leggi altre domande sui tag