Mit lodash kann ich zwei Arrays zusammenführen, indem ich IDs vergleiche, wenn ein Array die ID als String hat und das andere die ID als a hat Nummer?Verschmelzen Sie zwei Arrays, wenn die ID in jedem Array einen anderen Typ hat (String, Zahl)
var a = [{
id: 1,
item: 1
}, {
id: 2,
item: 2
}, {
id: 3,
item: 4
}];
var b = [{
id: "1",
profile: 1
}, {
id: "2",
profile: 2
}];
Das habe ich ausprobiert. Dies funktioniert einwandfrei, wenn die IDs in beiden Arrays Strings sind oder beide IDs Zahlen sind. Das Hinzufügen von toString() oder parseInt scheint ebenfalls nicht zu funktionieren.
return _.map(a, function(obj) {
return _.assign(obj, _.find(b, {
id: obj.id
}));
});
Gibt es eine Möglichkeit alle seine Zahl, die die IDs für die resultierende Anordnung zu machen? Wie du sagst, sind IDs 1 und 2 String und ID 3 ist eine Zahl. – JAck28
@ JAck28 Sicher. Ordnen Sie einfach die Ausgabe von '_.assign()' einer Variablen zu und konvertieren Sie den 'id'-Wert in string oder int, bevor Sie ihn an '_.map()' zurückliefern: https://jsfiddle.net/ugL7z0oy/. –
danke, das funktioniert. – JAck28