2016-06-24 4 views
0

Ich möchte Schlüssel über Wert von Objekt finden, und ich finde, dass lodash bieten uns bequeme api findKey könnte mir helfen.algorithmus von findKey in lodash

aber meine Frage ist, wie könnte findKey arbeiten? ist das anders als hash common key value mapping?

Ich weiß nichts darüber, wenn möglich, könnten Sie mir ein Beispiel zum Vergleich liefern?

danke für deine zeit!

+0

Möchten Sie speziell die findKey-Implementierung von lodash oder eine Implementierung, die einen Schlüssel findet? – kazenorin

+0

@kazenorin danke für deine Antwort, ich möchte nur das Prinzip und die Effizienz von 'findKey' kennen, im Vergleich mit Schlüssel-Wert-Mapping, ich bin mir nicht sicher, wie es funktioniert. –

Antwort

2

Lodash ist eine Open-Source-Bibliothek, Sie können ihre Quelle überprüfen, um ihre Implementierungen aller Funktionen zu überprüfen.

https://github.com/lodash/lodash/blob/master/lodash.js

findKey kann wahrscheinlich 716 des aufgespürt werden, um die Leitung baseFindKey Funktion:

function baseFindKey(collection, predicate, eachFunc) { 
    var result; 
    eachFunc(collection, function(value, key, collection) { 
    if (predicate(value, key, collection)) { 
     result = key; 
     return false; 
    } 
    }); 
    return result; 
} 

Was sie tut, ist es durch die Sammlung läuft, und für jedes Mitglied innerhalb der Sammlung, das Prädikat Prüfung durchführen um zu sehen, ob das Mitglied dem Prädikat entspricht.

Wenn es übereinstimmt, wird der Schlüssel als Ergebnis zurückgegeben.

+0

danke nochmal, es ist was ich brauche :) –