Hallo Berta,
du triffst ein paar falsche Annahmen.
Die Variable Eintraege muss ein Array bleiben, da sie iterable bleiben muss
Es gibt mehr iterables als das Array. Ein Objekt ist - wenn du neuere JavaScript-Versionen verwendest und auf Alt-Browser verzichten kannst - mit der for-of Schleife iterierbar (nur die Werte), bzw. mit getOwnPropertyNames() kommst Du auch an die Eigenschaftennamen heran und kannst damit iterieren. Aber es kann ja durchaus sein, dass das Array für Dich das beste ist.
.reduce ist die falsche Wahl. Du möchtest jeden Array-Eintrag durch einen anderen ersetzen, da bietet sich eher .map an.
var Eintraege = ["Eintrag_1", "Eintrag_2", "Eintrag_3"];
Eintraege = Eintraege.map(function(name) {
var Wert = getSomeInt(name);
var result = {};
result[name] = Wert;
return result;
});
Mit ECMAScript 2015 gibt es ein neues Feature: berechnete Eigenschaftsnamen. Und es gibt die Pfeilfunktionen, mit denen sich bspw. Callback-Funktionen kürzer formulieren lassen. Damit könnte das so aussehen (in allen aktuellen Browsern, d.h. nicht im Internet Explorer):
var Eintraege = ["Eintrag_1", "Eintrag_2", "Eintrag_3"];
Eintraege = Eintraege.map(name => ({ [name] : getSomeInt(name) }) );
Die Klammern um das Objektliteral { [name] : getSomeInt(name) }
sind nötig, weil der JavaScript-Interpreter sonst durcheinandergerät und denkt, man wolle einen Funktionsrumpf schreiben.
Rolf
sumpsi - posui - clusi