Verwenden Sie ein Array von Werten, mit denen Sie vergleichen möchten, und prüfen Sie, ob ein zurückgegebener Index größer als -1 ist. Dies zeigt an, dass der evaluierte Wert in der Sammlung gefunden wurde.
_.remove(fruits, function (fruit) {
return _.indexOf([ "Apple", "Banana", "Orange" ], fruit) >= 0;
});
Alternativ können Sie lo-dash's _.contains
method verwenden, um eine boolean Antwort zu erhalten.
Das Problem mit der Vorgehensweise, die Sie ergriffen haben, war, dass Sie fruit
nicht gegen jede dieser Zeichenfolgen verglichen haben; stattdessen war der einzige Vergleich, der stattfand, fruit
gegen "Apple"
, nachdem Sie Strings ganz allein gezwungen hatten.
Nicht leere Strings true
(!!"Banana"
), und als solche sind truthy zwingen. Daher wird die folgende Bedingung immer Kurzschluss an "Banana" (es sei denn fruit
streng gleich "Apple"
), Rückkehr true
:
return fruit === "Apple" || 'Banana' || "Orange";
Warum nicht '_.includes' anstelle von' _.indexOf' verwenden? –