Ich versuche, eine Methode zu schreiben, die die Wörter in einem Satz nimmt, listet die verschiedenen Wörter und die Anzahl der Male auftreten, aber ich kann nicht erhalten es funktioniert.Zuweisen von Array-Elementen als Objekteigenschaften mit 'Zähler' Wert
Dies ist, was ich bisher:
var wordsArr = ['one', 'fish', 'two', 'fish', 'red', 'fish', 'blue', 'fish']
var wordsObj = {};
for (var i = 0; i < wordsArr.length; i++) {
var counter = 0;
wordsObj.wordArr[i] = counter++;
}
return wordsObj;
Am Ende davon Ich hoffe, dies zu sehen zurück:
{ one : 1, fish : 4, two : 1, red : 1, blue : 1 }
Meine Konsole sagt mir,
'Uncaught TypeError: Cannot set property '0' of undefined'
Ich nehme an undefined
bezieht sich auf die counter
Variable. Ich habe versucht, dies innerhalb und vor der Schleife zu deklarieren (wie 0
), aber das funktioniert nicht.
Wird etwas mit wordsArr[i]
als String zurückgegeben und daher nicht richtig als Eigenschaft von wordsObj
festgelegt?
Wenn mir jemand sagen kann, wo ich falsch liege, würde ich es begrüßen. Danke im Voraus.
Genau was ich suchte. Es ist nicht vorgekommen, Bracket-Notation zu verwenden, um die Eigenschaft hinzuzufügen, die ein indiziertes Array-Element ist, oder einfach die Eigenschaft zu verwenden, um den vorhandenen Zählerwert zurückzugeben ... Danke! – Paulos3000
froh, dass dir geholfen hat! – maioman