2017-04-11 6 views
0

ich eine Sammlung habe,einen Eintrag aus einer Sammlung entfernen, wenn ein Attribut einen bestimmten Wert übereinstimmt lodash mit

var users = [ 
     {'user': 'Mike', 'age': 11, 'description': 'Null'}, 
     {'user': 'Kiddo', 'age': 36, 'description': 'Not Available'}, 
     { 'user': 'Jack', 'age': 36, 'description': 'test'} 
    ]; 

Wie lodash Bibliothek verwenden kann, um die Einträge zu entfernen, die ‚Beschreibung‘ hat: ‚nicht verfügbar‘?

Edit 1: versucht, die unter Verwendung von

function removeItemsByAttrValue (collection, attrValue, matchValue) { 
    return _.filter(collection, val => val.attrValue !== matchValue); 
} 

es Ausgeführt wie

removeItemsByAttrValue (users, 'description', 'Not Available'); 

Irgendwie dies nicht das Element filtern haben.

+0

Filter zu verwenden, abzulehnen oder zu entfernen. –

+0

Mögliches Duplikat von [Wie kann ich ein Element mit lodash aus einer Liste entfernen?] (Http://stackoverflow.com/questions/21281286/how-can-i-remove-an-element-from-a-list- with-lodash) –

Antwort

3

Sie können die eingebauten JS Methode für Arrays verwenden filter

var filteredUsers = users.filter(val => val.description !== 'Not Available'); 

Lodash hat auch eine Filtermethode, aber es ist nicht notwendig hier

_.filter(users, val => val.description !== 'Not Available') 
+0

Danke, wenn ich es innerhalb einer Funktion benutzt habe und die Parameter übergeben habe, irgendwie filtert es nicht. Ich habe die Frage mit dem, was ich versucht habe, bearbeitet. Aber wenn der Filter verwendet wird, wie es ist, funktioniert es. –

+0

Sie müssten Ihre Funktion so aktualisieren, dass sie folgendermaßen aussieht: '_.filter (collection, val => val [attrValue]! == matchValue);' beachten Sie die Klammernotation @Vishnu –

+0

Danke nochmal, ich werde es ausprobieren! –

Verwandte Themen