sar*_*ake 52 javascript filtering filter lodash
我们有一个对象数组
var myArr = [ {name: "john", age:23}
{name: "john", age:43}
{name: "jim", age:101}
{name: "bob", age:67} ];
Run Code Online (Sandbox Code Playgroud)
如何从myArr获取对象列表,其名称是john与lodash?
Env*_*off 111
使用lodash _.filter
方法:
_.filter(collection, [predicate=_.identity])
Run Code Online (Sandbox Code Playgroud)
迭代集合的元素,返回所有元素的数组谓词返回truthy.使用三个参数调用谓词:(value,index | key,collection).
谓词作为自定义函数
_.filter(myArr, function(o) {
return o.name == 'john';
});
Run Code Online (Sandbox Code Playgroud)
谓词作为过滤对象的一部分(_.matches
iteratee简写)
_.filter(myArr, {name: 'john'});
Run Code Online (Sandbox Code Playgroud)
谓词为[key,value]数组(_.matchesProperty
iteratee简写.)
_.filter(myArr, ['name', 'John']);
Run Code Online (Sandbox Code Playgroud)
Dus*_*ant 23
Lodash有一个"map"功能,就像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)
Run Code Online (Sandbox Code Playgroud)
Yuc*_*uci 10
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)
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
**按姓名、年龄过滤**也可以使用地图功能
地图和过滤器的区别
1. map - map() 方法使用为每个数组元素调用函数的结果创建一个新数组。map 方法允许根据用户的偏好操作数组中的项目,在一个全新的数组中返回所选操作的结论。例如,考虑以下数组:
2. filter - filter() 方法创建一个数组,其中填充了所有通过所提供函数实现的测试的数组元素。filter 方法非常适用于用户必须识别数组中具有共同特征的某些项目的特定情况。例如,考虑以下数组:
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);
Run Code Online (Sandbox Code Playgroud)
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");
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
104562 次 |
最近记录: |