it-swarm.com.de

Filtern von Objekten mit lodash nach Eigenschaftswert

Wir haben eine Reihe von Objekten als solche

var myArr = [ {name: "john", age:23}
              {name: "john", age:43}
              {name: "jim", age:101}
              {name: "bob", age:67} ];

wie erhalte ich die Liste der Objekte von myArr, bei denen der Name john mit lodash lautet?

38
sarsnake

Lodash hat eine "Map" -Funktion, die wie jQuerys funktioniert:

var myArr =  [{ name: "john", age:23 },
              { name: "john", age:43 },
              { name: "jimi", age:10 },
              { name: "bobi", age:67 }];

var johns = _.map(myArr, function(o) {
    if (o.name == "john") return o;
});

// Remove undefines from the array
johns = _.without(johns, undefined)

15
Dustin Poissant

Verwenden Sie die lodash _.filter Methode:

_.filter(collection, [predicate=_.identity])

Iteriert über Elemente der Sammlung und gibt ein Array aller Elemente zurück, für das das Prädikat wahr ist. Das Prädikat wird mit drei Argumenten aufgerufen: (Value, index | key, collection).

mit Prädikat als benutzerdefinierte Funktion

 _.filter(myArr, function(o) { 
    return o.name == 'john'; 
 });

mit Prädikat als Teil eines gefilterten Objekts (die _.matches-Iterate-Abkürzung)

_.filter(myArr, {name: 'john'});

mit Prädikat als [Schlüssel, Wert] -Array (die _.matchesProperty-Iterate-Abkürzung.)

_.filter(myArr, ['name', 'John']);
89

let myArr = [
    {name: "john", age:23},
    {name: "john", age:43},
    {name: "jim", age:101},
    {name: "bob", age:67},
];

// this will return old object (myArr) with items named 'john'
let list = _.filter(myArr, item => item.name === 'jhon');

//  this will return new object referenc (new Object) with items named 'john' 
let list = _.map(myArr, item => item.name === 'jhon').filter(item => item.name);

2
Nver Abgaryan

lodash hat auch eine entfernungsmethode

 var myArr = [ {name: "john", age:23}
          {name: "john", age:43}
          {name: "jim", age:101}
          {name: "bob", age:67} ];

 var onlyJohn = myArr.remove( person => { return person.name == "john" })
1
Nicole Wheeler

Mit lodash :

const myArr = [ {name: "john", age:23},
                {name: "john", age:43},
                {name: "jim", age:101},
                {name: "bob", age:67} ];

const johnArr = _.filter(myArr, person => person.name === 'john');
console.log(johnArr)

 enter image description here

Vanille JavaScript:

const myArr = [ {name: "john", age:23},
                {name: "john", age:43},
                {name: "jim", age:101},
                {name: "bob", age:67} ];

const johnArr = myArr.filter(person => person.name === 'john');
console.log(johnArr);

 enter image description here

0
Yuci

** Filtern nach Name, Alter ** Sie können auch die Kartenfunktion verwenden 

Unterschied zwischen Karte und Filter

1. map - Die map () - Methode erstellt ein neues Array mit den Ergebnissen des Aufrufs einer Funktion für jedes Array-Element. Mit der Kartenmethode können Elemente in einem Array gemäß den Präferenzen des Benutzers bearbeitet werden, um die Schlussfolgerung der ausgewählten Manipulation in einem völlig neuen Array zurückzugeben. Betrachten Sie zum Beispiel das folgende Array:

2. filter - Die filter () - Methode erstellt ein Array, das mit allen Arrayelementen gefüllt ist, die einen von der bereitgestellten Funktion durchgeführten Test bestehen. Die Filtermethode eignet sich gut für bestimmte Fälle, in denen der Benutzer bestimmte Elemente in einem Array identifizieren muss, die ein gemeinsames Merkmal aufweisen. Betrachten Sie zum Beispiel das folgende Array:

`const users = [ 
           {name: "john", age:23},
           {name: "john", age:43},
           {name: "jim", age:101},
           {name: "bob", age:67} 
     ];

    const user = _.filter(users, {name : 'jim', age: 101});
    console.log(user);`
0
Nver Abgaryan
let myArr = [
    {name: "john", age:23},
    {name: "john", age:43},
    {name: "jim", age:101},
    {name: "bob", age:67},
];

let list = _.filter(myArr, item => item.name === "john");
0
Nver Abgaryan