Suche nach Eigenschaften von JS-Objekten mit Truthy-Werten unter Verwendung von lodash

8

Sagen wir, ich habe ein Objekt wie:

%Vor%

Ich kann _.findKey verwenden, um einen Schlüssel mit einem wahren Wert zu erhalten, aber ich möchte wirklich ein Array erhalten, das alle Schlüssel mit einem wahren Wert enthält. ZB

%Vor%

Es ist einfach genug, eine Funktion dafür zu schreiben, aber es scheint so eine offensichtliche Verallgemeinerung von findKey zu sein, dass ich das Gefühl habe, dass ich es einfach vermisse. Hat lodash eine solche Funktion?

    
Asmor 03.04.2015, 23:44
quelle

7 Antworten

17

%Vor% %Vor%

Bearbeiten:
Wie in @backdesk angegeben, funktioniert _.pick nicht mehr für lodash 4, da _.pickBy aufgeteilt wurde.

%Vor% %Vor%
    
DTing 04.04.2015, 00:17
quelle
6

Ich habe eine Antwort gefunden, die sich gleichzeitig klebrig und elegant anfühlt.

%Vor%     
Asmor 03.04.2015 23:53
quelle
2

pickBy in loDash verwendet standardmäßig _.identity , um Eigenschaften zu filtern so können Sie es wie folgt verwenden:

%Vor%     
Adam 13.04.2016 16:07
quelle
1

Ich denke, Sie suchen nach der Methode pick .

  

Gibt eine Kopie des Objekts zurück, gefiltert, um nur Werte für die Whitelist-Schlüssel (oder ein Array gültiger Schlüssel) zu haben. Alternativ akzeptiert ein Prädikat, das angibt, welche Schlüssel ausgewählt werden sollen.

%Vor% %Vor%
    
AWolf 03.04.2015 23:59
quelle
0

Ich persönlich bevorzuge das Folgende - obwohl es ausführlicher ist - weil ich denke, dass es offensichtlicher ist, was es tut. Es erfordert jedoch ES6-Syntax:

%Vor%

Wenn Ihr ESLint keine unbenutzten Variablen erlaubt, können Sie zum Beispiel Folgendes in .eslint.yml verwenden:

%Vor%

Was erlaubt,

zu schreiben %Vor%     
Vincent van der Weele 09.08.2016 11:22
quelle
0

Probieren Sie

aus %Vor%

_. pickBy (foo, _.identity);

    
Walter Zalazar 19.09.2016 16:02
quelle
0
___ qstnhdr ___ Suche nach Eigenschaften von JS-Objekten mit Truthy-Werten unter Verwendung von lodash ___ answer29441382 ___

%Vor% %Vor%

Bearbeiten:
Wie in @backdesk angegeben, funktioniert %code% nicht mehr für lodash 4, da %code% aufgeteilt wurde.

%Vor% %Vor%
    
___ answer38849343 ___

Ich persönlich bevorzuge das Folgende - obwohl es ausführlicher ist - weil ich denke, dass es offensichtlicher ist, was es tut. Es erfordert jedoch ES6-Syntax:

%Vor%

Wenn Ihr ESLint keine unbenutzten Variablen erlaubt, können Sie zum Beispiel Folgendes in %code% verwenden:

%Vor%

Was erlaubt,

zu schreiben %Vor%     
___ answer29441269 ___

Ich denke, Sie suchen nach der Methode %code% .

  

Gibt eine Kopie des Objekts zurück, gefiltert, um nur Werte für die Whitelist-Schlüssel (oder ein Array gültiger Schlüssel) zu haben. Alternativ akzeptiert ein Prädikat, das angibt, welche Schlüssel ausgewählt werden sollen.

%Vor% %Vor%
    
___ qstntxt ___

Sagen wir, ich habe ein Objekt wie:

%Vor%

Ich kann _.findKey verwenden, um einen Schlüssel mit einem wahren Wert zu erhalten, aber ich möchte wirklich ein Array erhalten, das alle Schlüssel mit einem wahren Wert enthält. ZB

%Vor%

Es ist einfach genug, eine Funktion dafür zu schreiben, aber es scheint so eine offensichtliche Verallgemeinerung von findKey zu sein, dass ich das Gefühl habe, dass ich es einfach vermisse. Hat lodash eine solche Funktion?

    
___ tag123javascript ___ JavaScript (nicht zu verwechseln mit Java) ist eine dynamische Sprache mit mehreren Paradigmen auf hoher Ebene, die sowohl für das clientseitige als auch für das serverseitige Scripting verwendet wird. Verwenden Sie dieses Tag für Fragen zu ECMAScript und seinen verschiedenen Dialekten / Implementierungen (außer ActionScript und Google-Apps-Script). ___ answer39577411 ___

Probieren Sie

aus %Vor%

_. pickBy (foo, _.identity);

    
___ answer29441236 ___

Ich habe eine Antwort gefunden, die sich gleichzeitig klebrig und elegant anfühlt.

%Vor%     
___ tag123lodash ___ Eine moderne JavaScript-Bibliothek, die Modularität, Leistung und Extras bietet ___ antwort43719200 ___

Wenn Sie nicht schreiben und duplizieren wollen und keine komplette util-Bibliothek importieren müssen, können Sie diese wiederverwendbare Open-Source-Methode auch verwenden Objekt-clean Komponente.

So funktioniert es:

%Vor%

Beispiel:

%Vor%     
___ answer36603964 ___

pickBy in loDash verwendet standardmäßig %code% , um Eigenschaften zu filtern so können Sie es wie folgt verwenden:

%Vor%     
___
Yoni 01.05.2017 12:35
quelle

Tags und Links