Ich möchte die Speicheranforderungen für JSON-Daten reduzieren, indem ich sie gegen bekannte Standardwerte deletiere. Im Grunde, was ich will, ist ein inverse für jQuery .extend()
Funktion, so dass der folgende Test bestanden wird für beliebige JSON-kompatible Objekte:Inverse von jQuery.extend (true, ...)
function test_delta(defaults, delta) {
var current = $.extend(true, {}, defaults, delta);
QUnit.same(get_delta(current, defaults), delta);
}
Bevor ich mit dem Schreiben beginne meine eigenen get_delta()
, ist jemand bewusst eine bestehende Implementierung?
Sie müssen selbst mit dem harten (Nested Loop) Weg umgehen. Wie du wahrscheinlich weißt. Es macht noch mehr Spaß, wenn Ihre JSON-Daten eine beliebige Tiefe haben. –
Ja, ich habe schon einige interessante Randfälle gefunden; Deshalb dachte ich, ich würde das "SO-Orakel" fragen, bevor ich mich selbst damit beschäftige. Ah, gut. :-) –
Ein guter Ausgangspunkt wäre die Funktion jQuery.fn.extend in [jQuery source] (http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js). – calvinf