每天一点前端知识 - 数组分类

51 阅读1分钟

实现

const classifyArr = (arr = [], key = 'name') => {
  const obj = {};
  arr.map(item => {
    if (!obj[item[key]]) {
      obj[item[key]] = [item];
    } else {
      obj[item[key]].push(item);
    }
  });
  return obj;
};

使用

classifyArr(arr, key);

- arr:数组
- key:根据 `key` 值来分类

示例

const apis = [
  {
    name: 'listProject',
    url: '/project/list',
    tags: 'projectApis',
  },
  {
    name: 'listReport',
    url: '/report/list',
    tags: 'reportApis',
  },
  {
    name: 'addReport',
    url: '/report/add',
    method: 'post',
    tags: 'reportApis',
  },
  {
    name: 'addProject',
    url: '/project/add',
    method: 'post',
    tags: 'projectApis',
  },
  {
    name: 'editReport',
    url: '/report/edit',
    method: 'post',
    tags: 'reportApis',
  },
  {
    name: 'editProject',
    url: '/project/edit',
    method: 'post',
    tags: 'projectApis',
  },
  {
    name: 'deleteReport',
    url: '/report/delete',
    method: 'post',
    tags: 'reportApis',
  },
  {
    name: 'deleteProject',
    url: '/project/delete',
    method: 'post',
    tags: 'projectApis',
  },
];

classifyArr(apis, 'tags');

5.png

5-result.png

演示地址:ihuxy.com/play?utils=…