webentwicklung-frage-antwort-db.com.de

Die Lodash _.filter-Funktion darf nur EINE Bedingung erfüllen

Ich verwende derzeit die Lodash _.filter () - Funktion, um Objekte zu filtern, die eine bestimmte Bedingung aufgrund der Benutzersuche erfüllen. Dies kann entweder eine Straße, ein Ort oder ein Land sein.

Ich habe die Suchzeichenfolge extrahiert und möchte diese nach verschiedenen Werten in jedem Objekt filtern. Das Objekt muss zurückgegeben werden, wenn die Zeichenfolge in einem dieser Schlüssel gefunden wird.

Zur Erklärung möchte ich das Beispiel von der Website verwenden.

var users = [
  { 'user': 'barney',  'age': 36, 'active': true },
  { 'user': 'fred',    'age': 40, 'active': false },
  { 'user': 'pebbles', 'age': 1,  'active': true }
];

// using the `_.matches` callback shorthand
_.result(_.find(users, { 'age': 1, 'active': true }), 'user');

Wie würde ich in diesem Beispiel nach Benutzern filtern, die entweder 36 Jahre OR aktiv sind?

Laut der Dokumentation müssen beide Bedingungen erfüllt sein, wie in dem obigen Beispiel für das zurückgegebene Objekt. 

13

Sie können eine Funktion an _.filter übergeben:

_.filter(users, function(user) {
    return user.age === 36 || user.active;
});

und Sie können dieselbe Technik mit _.find verwenden:

_.result(_.find(users, function(user) {
    return user.age === 36 || user.active;
}), 'user');
38
npe

Funktioniert auch zweite Lösung in Vue.js

users.filter(user => {
                return user.age == 36 || user.active;
            });
0
user_ivanp