Ich habe zwei Arrays:
array1 = ["Bob", "John", "Dave"];
array2 = [1, 2, 3];
Kombinieren Sie die beiden zu einem Javascript-Array, das mit Objekten gefüllt ist und wie folgt aussieht:
[
{meta: 'Bob', value: 1 },
{meta: 'John', value: 2},
{meta: 'Dave', value: 3}
]
Lass es uns aufschlüsseln.
Sie haben zwei Arrays gleicher Länge und möchten aus jedem einen Wert extrahieren.
// Could also do array2.length since they're the same size
for (var i = 0; i < array1.length; i++) {
var val1 = array1[i];
var val2 = array2[i]
}
und Sie möchten ein Objekt mit diesen beiden Werten erstellen
for (var i = 0; i < array1.length; i++) {
var val1 = array1[i];
var val2 = array2[i]
var obj = {
meta: val1,
value: val2
};
}
Schließlich möchten Sie jedes dieser generierten Objekte in einem Array speichern
var result = [];
for (var i = 0; i < array1.length; i++) {
var val1 = array1[i];
var val2 = array2[i]
var obj = {
meta: val1,
value: val2
};
result.push(obj);
}
Und jetzt haben Sie Ihr Ergebnis!
Sie können dies auf verschiedene Arten umschreiben. Zum Beispiel:
var result = array1.map(function(val1, index) {
return {
meta: val1,
value: array2[index]
};
});
oder wenn Sie sich in einer Umgebung befinden, die dies unterstützt:
let result = array1.map((val1, index) => (
{
meta: val1,
value: array2[index]
}
));

netter Benutzer
Es ist einer der Wege, wie man es erreichen kann. Sie können verwenden Array#forEach
Funktion, um über jedes Element von zu iterieren array1
. Erstellen Sie dann ein leeres Objekt und legen Sie die angegebenen Eigenschaften fest – in Ihrem Fall: meta
und value
. Dann – weisen Sie ihm Elemente zu und schieben Sie es einfach in die arr
Variable.
var array1 = ["Bob", "John", "Dave"],
array2 = [1, 2, 3],
arr = [];
array1.forEach(function(v,i){
var obj = {};
obj.meta = v;
obj.value = array2[i];
arr.push(obj);
});
console.log(arr);
Einfache Lösung mit Array.prototype.map()
Funktion:
var array1 = ["Bob", "John", "Dave"],
array2 = [1, 2, 3],
combined = array1.map(function(v, k, a){ return {meta: v, value: array2[k]}; });
console.log(combined);
Sie könnten ein Objekt verwenden und die Schlüssel und Werte iterieren.
var array1 = ["Bob", "John", "Dave"],
array2 = [1, 2, 3],
object = { meta: array1, value: array2 },
result = Object.keys(object).reduce(function (r, k) {
object[k].forEach(function (a, i) {
r[i] = r[i] || {};
r[i][k] = a;
});
return r;
}, []);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Angenommen, Sie verwenden Chrome, könnten Sie Folgendes tun:
const combined = array1.map((name,i) => ({meta: name, value: array2[i]}))
10153300cookie-checkKombinieren Sie die Werte zweier Arrays zu einem Objektyes
Das gibt es auf jeden Fall, und ich helfe Ihnen gerne dabei, zu verstehen, wie. Haben Sie selbst etwas ausprobiert?
– Mike Gluck
24. Februar 2017 um 21:56 Uhr
Während ich mit der Handhabung und dem Jonglieren von Array-Daten sehr vertraut bin, bin ich das genaue Gegenteil, wenn es um Objekte geht, mehr noch, wenn ich die beiden kombiniere. Am nächsten kam ich daran, dass ein Array der Schlüssel und das zweite der Wert war.
– iiii
24. Februar 2017 um 21:59 Uhr