We have an array of objects as such
var myArr = [ {name: "john", age: 23},
{name: "john", age: 43},
{name: "jim", age: 101},
{name: "bob", age: 67} ];
how do I get the list of objects from myArr where name is john with lodash?
This question is related to
javascript
filter
filtering
lodash
lodash also has a remove method
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);
_x000D_
_x000D_
let myArr = [_x000D_
{ name: "john", age: 23 },_x000D_
{ name: "john", age: 43 },_x000D_
{ name: "jim", age: 101 },_x000D_
{ name: "bob", age: 67 },_x000D_
];_x000D_
_x000D_
let list = _.filter(myArr, item => item.name === "john");
_x000D_
_x000D_
_x000D_
let myArr = [_x000D_
{ name: "john", age: 23 },_x000D_
{ name: "john", age: 43 },_x000D_
{ name: "jim", age: 101 },_x000D_
{ name: "bob", age: 67 },_x000D_
];_x000D_
_x000D_
// this will return old object (myArr) with items named 'john'_x000D_
let list = _.filter(myArr, item => item.name === 'jhon');_x000D_
_x000D_
// this will return new object referenc (new Object) with items named 'john' _x000D_
let list = _.map(myArr, item => item.name === 'jhon').filter(item => item.name);
_x000D_
Use lodash _.filter
method:
_.filter(collection, [predicate=_.identity])
Iterates over elements of collection, returning an array of all elements predicate returns truthy for. The predicate is invoked with three arguments: (value, index|key, collection).
with predicate as custom function
_.filter(myArr, function(o) {
return o.name == 'john';
});
with predicate as part of filtered object (the _.matches
iteratee shorthand)
_.filter(myArr, {name: 'john'});
with predicate as [key, value] array (the _.matchesProperty
iteratee shorthand.)
_.filter(myArr, ['name', 'John']);
Docs reference: https://lodash.com/docs/4.17.4#filter
**Filter by name, age ** also, you can use the map function
difference between map and filter
1. map - The map() method creates a new array with the results of calling a function for every array element. The map method allows items in an array to be manipulated to the user’s preference, returning the conclusion of the chosen manipulation in an entirely new array. For example, consider the following array:
2. filter - The filter() method creates an array filled with all array elements that pass a test implemented by the provided function. The filter method is well suited for particular instances where the user must identify certain items in an array that share a common characteristic. For example, consider the following 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);
Source: Stackoverflow.com