Ich habe ein Array ['red', 'green', 'blue']
Ich möchte einen neuen Hash aus diesem Array erstellen, das Ergebnis sollte sein
{'red':true, 'green':true, 'blue':true}
Wie lässt sich dieses Ziel am besten mit Prototype erreichen?
Ich habe ein Array ['red', 'green', 'blue']
Ich möchte einen neuen Hash aus diesem Array erstellen, das Ergebnis sollte sein
{'red':true, 'green':true, 'blue':true}
Wie lässt sich dieses Ziel am besten mit Prototype erreichen?
Iterieren Sie einfach über das Array und erstellen Sie dann den Hash:
var obj = {};
for(var i = 0, l = colors.length; i < l; i++) {
obj[colors[i]] = true;
}
var hash = new Hash(obj);
Sie können auch ein neues Hash-Objekt von Anfang an erstellen:
var hash = new Hash();
for(var i = 0, l = colors.length; i < l; i++) {
hash.set(colors[i], true);
}
Ich schlage vor, einen Blick auf die Dokumentation .
Diese funktionale Javascript-Lösung verwendet Array.prototype.reduce() :
['red', 'green', 'blue']
.reduce((hash, elem) => { hash[elem] = true; return hash }, {})
Das dritte Argument des Rückrufs ist der Index des aktuell bearbeiteten Elements im Array. Wenn Sie also eine Nachschlagetabelle der Elemente mit ihrem Index erstellen wollten:
['red', 'green', 'blue'].reduce(
(hash, elem, index) => {
hash[elem] = index++;
return hash
}, {});
Rückgabe:
Object {red: 0, green: 1, blue: 2}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.