javascript - Värden i map-objektet ökas inte


Jag gör en analys på en array av strängar som heter wordList: string[]=[];

Detta innehåller en lång lista med strängar.

Problem: Jag har ett kartobjekt vars nyckel är av typen string och värdet är av typen number.

Här är min kod.

private rankMostFrequent5Words(): void {

    this.wordList.forEach((word:string) => {

     if(!this.mapObject.has(word)) {

        this.mapObject.set(word, 1)
     }
     else {
        this.mapObject[word]++;
     }
    });
  }

Mitt önskade resultat är: om en nyckel redan finns i kartan, öka numret med 1 och om det inte finns, sätt denna nyckel och räkningen till 1.

Faktiskt utdata:

Hur kan jag fixa detta? Vänligen vägled mig.

Svar #1

Du kan inte komma åt kartvärden med hakparentessyntax. Du måste använda .get-metoden.

if(!this.mapObject.has(word)) {
  this.mapObject.set(word, 1)
} else {
  this.mapObject.set(word, this.mapObject.get(word) + 1)
}

Läs mer om karta.