find方法
find方法根据某一属性查询数组中的对象,只返回一个对象, 满足条件的多个值只返回第一个。arr.find(item => item.name == "zhangsan")
filter方法
filter方法相对于上面find方法可以返回所有满足条件的值
arr.filter(item => item.name == "zhangsan"),如果arr中有多个name是zhangsan的对象,则返回所有
reduce方法
如果想对数组中所有对象的某一属性做统一操作,比如把arr中所有人的age相加,则可以用reduce方法, sumData为累加器,obj为每一个对象:
let result = arr.reduce((sumData,obj) => {
return sumData + obj.age
},0)
map方法
可以用来提取对象数组的某一个属性为一个新数组,或者做运算
arr = arr.map(item => { return item.age }); // 提取对象数组中的age为一个新数组
arr = arr.map(item => item * 2) // 把所有值乘以2
数组去重
[...new Set(arr)]
差集
function arrayMinus(arrA, arrB) {
return arrA.filter(v => !arrB.includes(v));
}
交集
function arrayIntersection (arrA, arrB) {
return arrA.filter(v => arrB.indexOf(v) > -1);
}