Gibt einen Objektschlüssel nur zurück, wenn der Wert wahr ist

9

Wie gebe ich den Namen eines Objektschlüssels nur zurück, wenn der Wert true ist?

Ich verwende Unterstreichung und das einzige, was ich sehe, ist, wie man Schlüssel zurückgibt, was einfach ist. Ich möchte so oft wie möglich redundante Iterationen vermeiden:

Beispiel:

%Vor%

Ich möchte ein Array mit nur 1001 drin ...

    
user3299182 02.08.2014, 13:57
quelle

4 Antworten

16

Object.keys ruft die Schlüssel vom Objekt ab Dann können Sie die Schlüssel basierend auf den Werten %Vor%

FIDDLE

    
adeneo 02.08.2014, 13:58
quelle
7

Es gibt eine weitere Alternative, die mit Lodash Bibliotheken verwendet werden kann, die zwei Methoden verwenden:

  • _.pickBy - Erzeugt ein Objekt, das aus den Objekteigenschaften besteht. Wenn es keinen zusätzlichen Parameter (Prädikat) gibt, haben alle zurückgegebenen Eigenschaften truthy Werte.
  • _.keys(object) - erstellt ein Array von Schlüsseln aus dem angegebenen Objekt

In Ihrem Beispiel wäre das also:

%Vor%

Mit der Bibliothek Underscore.js wäre das sehr ähnlich. Sie müssen _.pick und _.keys Funktionen. Der einzige Unterschied ist, dass _.pick eine Prädikatfunktion haben müsste, die _.identity ist.

Also wäre der Code wie folgt:

%Vor%

Ich hoffe, das wird helfen

    
Tom 22.02.2017 10:42
quelle
3

Wenn Sie versuchen, Filterung und Iteration über ein Objekt zu kombinieren, suchen Sie normalerweise nach _.reduce (dem Schweizer Taschenmesser) Iterator):

%Vor%

Demo: Ссылка

    
mu is too short 02.08.2014 15:00
quelle
0

Weniger ausführlich:

%Vor%     
Tom Shaw 17.09.2017 15:47
quelle