Nous avons un tableau d'objets en tant que tels
var myArr = [ {name: "john", age:23}
{name: "john", age:43}
{name: "jim", age:101}
{name: "bob", age:67} ];
comment puis-je obtenir la liste des objets de myArr où name est john avec lodash?
Lodash a une fonction "map" qui fonctionne comme jQuerys:
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)
Utilisez la méthode lodash _.filter
:
_.filter(collection, [predicate=_.identity])
Itère sur les éléments de la collection, renvoyant un tableau de tous les éléments prédicats retournant la vérité. Le prédicat est appelé avec trois arguments: (Valeur, index | clé, collection).
avec prédicat comme fonction personnalisée
_.filter(myArr, function(o) {
return o.name == 'john';
});
avec un prédicat faisant partie de l'objet filtré (le raccourci _.matches
iteratee)
_.filter(myArr, {name: 'john'});
avec un prédicat comme [clé, valeur] array (le raccourci _.matchesProperty
iteratee.)
_.filter(myArr, ['name', 'John']);
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);
lodash a également une méthode de suppression
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" })
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)
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);
** Filtrer par nom, âge ** De plus, vous pouvez utiliser la fonction carte
différence entre map et filter
1. map - La méthode map () crée un nouveau tableau avec les résultats de l'appel d'une fonction pour chaque élément du tableau. La méthode map permet aux éléments d’un tableau d’être manipulés selon les préférences de l’utilisateur, renvoyant ainsi la conclusion de la manipulation choisie dans un tableau entièrement nouveau. Par exemple, considérons le tableau suivant:
2. filter - La méthode filter () crée un tableau contenant tous les éléments de tableau ayant réussi un test implémenté par la fonction fournie. La méthode de filtrage est bien adaptée aux cas particuliers où l'utilisateur doit identifier certains éléments d'un tableau partageant une caractéristique commune. Par exemple, considérons le tableau suivant:
`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);`
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");