Ich habe versucht, diese beiden Objekte so zu verschmelzen & hinzufügen:Javascript obejct fusionieren + hinzufügen Algorithmus
obj1 = {
jpg: 1,
gif: 3,
}
obj2 = {
jpg: 1,
avi: 5,
}
obj3 = mergeAdd(obj1, obj2);
// obj3 = {
// jpg: 2,
// gif: 3,
// avi: 5,
// }
Zuerst habe ich dies schaffen, die O nimmt (n^2) mag:
for (let foo in obj1) {
for (let bar in obj2) {
if (foo === bar) {
// Exists : Add count
obj1[bar] += obj2[bar];
} else {
// Don`t Exists : Copy from obj2
obj1[bar] = obj2[bar];
}
}
}
Und dann, eine ‚neue Idee‘ kam mir in den Sinn - Hash-Funktion:
- Hash-Wert für ‚Schlüssel‘ Get von obj1 & obj2.
- Geben Sie 'Wert' von obj1 ein & obj2 zu einem neuen Array, und verwenden Sie ihren Hash-Wert als Index des Arrays.
- Machen Sie das Array zu einem neuen Objekt.
Was ich möchte wissen:
- Gibt es eine Bibliothek, die Funktion haben wie mergeAdd (obj1, obj2)?
- Ist meine 'neue Idee' schneller als mergeAdd (obj1, obj2)?
- Was ist der schnellste Algorithmus für mergeAdd?
Vielen Dank!
O (n log n) für das Zusammenführen und Sortierung. – jmugz3