Ich habe einen API-Aufruf, der mit einem aktualisierten jSON-Objekt antwortet, ich habe auch 1 statische jSON-Objektdatei. Ich versuche, einen Wert im Objekt pro Team mit demselben Namen zu vergleichen.JavaScript/jQuery: Vergleiche 2 jSON-Objekte und Ausgabeergebnis in neues Objekt
Wenn also Team John 22 in der alten Datei hatte und jetzt 28, sollte das neue Objekt Team John als 6 ausgeben. Subtrahieren Sie die 2 und zeigen Sie den Unterschied an.
Ich habe ein JsFiddle gemacht, um zu verstehen und zu aktualisieren.
AKTUELLES UPDATE: Die Antwort wurde von mscdeveloper gelöst! Überprüfen Sie seinen Beitrag und antworten Sie unten.
UPDATE (nicht die Antwort): ich eine Lösung gefunden haben, während in Stackoverflow gesucht, das tut genau das, was ich will, aber ich verlor den Namen des Teams in den Prozess, wie kann ich den Code, wo es doesn beheben Lösche es nicht, ich weiß, dass es etwas mit der Funktion groupByTypeID zu tun hat, die ich habe?
jsFiddle Aktualisiert:https://jsfiddle.net/kqmfsz9n/5/
var obj1 = {
"teams": [
{
name: 'Test 1',
numMembers: '50'
},
{
name: 'Test 2',
numMembers: '12'
}
]
};
var obj2 = {
"teams": [
{
name: 'Test 1',
numMembers: '75'
},
{
name: 'Test 2',
numMembers: '18'
}
]
};
var newObj = {};
function groupByTypeID(arr) {
var groupBy = {};
jQuery.each(arr, function() {
groupBy[this.name] = parseInt(this.numMembers);
});
return groupBy;
}
var userArrayGroups = groupByTypeID(obj2.teams);
var origArrayGroups = groupByTypeID(obj1.teams);
var newObj = [];
for (var prop in userArrayGroups) {
newObj[prop] = userArrayGroups[prop] - origArrayGroups[prop];
newObj.push(userArrayGroups[prop] - origArrayGroups[prop]);
if (newObj[prop] == 0) {
delete newObj[prop];
}
}
console.log(newObj);
Alle Hilfe ist willkommen! Danke.
Was ist mit anderen Arten? (Strings, Datumsangaben, Arrays, ...) –
Da ** JSON ein String-Format ist ** müssen Sie nur einen String-Vergleich mit '===' .of Ihrer beiden JSON-Strings durchführen. Es sei denn, Sie sprechen nicht über JSON, aber das ist, was Sie sagen ... –
Wow, so viele Abstimmungen für was? Ich versuche, das gelöst zu bekommen, aber die Leute stimmen in diesen Tagen ohne Grund ab, ohne zu verstehen, warum. Alles, was ich hatte, war eine einfache Frage, wenn ich numMembers von obj1 mit obj2 numMembers subtrahieren wollte, wie würde ich darüber gehen? –