数组元素分类函数

415 阅读1分钟

在最近一次项目开发中用到了需要将后端返回的数据进行分类处理,然后找到了一个用于数组数据分类的方法,记录一下

//arrayClass.js文件

/*
* 数组元素分类
* array 需要处理的数组
* f  以当前f分类的字段
* */
function groupBy(array, f){
    let groups = {};
    array.forEach(function (o) {
        var group = JSON.stringify(f(o));
        groups[group] = groups[group] || [];
        groups[group].push(o);
    });
    return Object.keys(groups).map(function (group) {
        return groups[group];
    });
};

![1667374919406.jpg](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1e760d3886894f8288274a2d56deba00~tplv-k3u1fbpfcp-watermark.image?)
export function arrayGroupBy(list, groupId){
    let sorted = groupBy(list, function (item) {
        return [item[groupId]];
    });
    return sorted;
};

![1667374919406.jpg](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7233cd481bd34868b8a36dd9ec7e26f4~tplv-k3u1fbpfcp-watermark.image?)
![1667374919406.jpg](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9bfac5269c3e46cc8e4ccf010e227f79~tplv-k3u1fbpfcp-watermark.image?)
import { arrayGroupBy } from "@/utils/arrayClass.js";

let arr = [{name:'一一',age:'18',sex:'男'},{name:'二二',age:'20',sex:'女'},{name:'三三',age:'18',sex:'男'},{name:'四四',age:'20',sex:'男'}]
console.log(arrayGroupBy(arr,'age'))

1667374919406.jpg