2017-06-02 2 views
0
function merger(objValue, srcValue, key, object, source, stack) { 
    switch (key) { 
    case 'keya': 
    case 'keyb': 
    case 'keyc': 
     return null 
    } 
} 

mergeWith({}, oldObj, newObj, merger) 

Ich möchte Fusion überspringen, wenn der Schlüssel gleich einem Wert ist. Aber die Ausgabe von oben genanntem Code wird die Ausgabe als {keya: null} haben, wenn newObjkeya hat.lodash mergeWith, mit einem Schlüssel überspringen

Kann ich die Zusammenführung überspringen, so dass der Schlüssel nicht in der Ausgabe ist?

Antwort

1

Einfache Antwort: Es ist nicht möglich mit _.mergeWith.

Sie können hier https://github.com/lodash/lodash/issues/2966 sehen. Sie müssen die null bewerteten Eigenschaften erneut mit einem anderen Prozess löschen. Wie,

_.omitBy(mergedObj, _.isNull); 
+0

Danke. Es scheint ineffizient zu sein. Ich werde es dann einfach lassen. –

Verwandte Themen