排序---根据年龄从小到大排序
let drr = [{
id: 3,
name: 'wangwu',
age: 22
}, {
id: 5,
name: 'lisi',
age: 40
}, {
id: 4,
name: 'zhangsan',
age: 18
}, {
id: 2,
name: 'zhaoliu',
age: 35
}]
//根据age排序
function abilitySort(arr, property, desc) {
return arr.sort(function (a, b) {
const val1 = a[property];
const val2 = b[property];
if (desc) {
return val1 - val2; // 升序排列
} else {
return val2 - val1; // 降序排列
}
})
}
console.log(abilitySort(drr, 'age', true));
效果如图:
![](https://i-blog.csdnimg.cn/blog_migrate/2b4cf83f129d0df9c1f161f6f7d38db5.png)
分组----根据性别分组
let err = [{
id: 3,
name: 'wangwu',
age: 22,
gender: 1
}, {
id: 5,
name: 'lisi',
age: 40,
gender: 1
}, {
id: 4,
name: 'zhangsan',
age: 18,
gender: 2
}, {
id: 2,
name: 'zhaoliu',
age: 35,
gender: 2
}]
function abilitySort(arr, property) {
let map = {};
for (let i = 0; i < arr.length; i++) {
const ai = arr[i];
if (!map[ai[property]]) map[ai[property]] = [ai];
else map[ai[property]].push(ai);
}
let res = [];
Object.keys(map).forEach((key) => {
res.push({
[property]: key,
data: map[key]
});
});
return res;
}
console.log(abilitySort(err, 'gender'));
效果如图:
![](https://i-blog.csdnimg.cn/blog_migrate/d361a5d4c2e2d907c63cc0f454daa995.png)