0
点赞
收藏
分享

微信扫一扫

除了 Lodash,我们还可以使用原生 JavaScript 实现将其转换为按 executeProcess 分组的二维数组结构,每个组包含 executeDept 和对应的列表

/**

  • 使用原生JavaScript将一维数组转换为按executeProcess分组的二维数组
  • @param {Array} arr - 原始一维数组
  • @returns {Array} 分组后的二维数组 */ function transformArray(arr) { // 使用reduce进行分组 const grouped = arr.reduce((acc, item) => { // 以executeProcess作为分组键 const key = item.executeProcess;
    // 如果该分组不存在,则创建一个新分组 if (!acc[key]) { acc[key] = { executeDept: item.executeDept || '', list: [] }; }
    // 将当前项添加到对应分组的list中(移除executeProcess和executeDept) const { executeProcess, executeDept, ...rest } = item; acc[key].list.push(rest);
    return acc; }, {}); // 初始值为空对象

// 将对象转换为数组形式 return Object.values(grouped); }

// 示例用法 const originalArray = [ { executeDept: '部门A', executeProcess: '流程1', name: '项目1' }, { executeDept: '部门A', executeProcess: '流程1', name: '项目2' }, { executeDept: '部门B', executeProcess: '流程2', name: '项目3' }, { executeDept: '部门B', executeProcess: '流程2', name: '项目4' }, { executeDept: '部门C', executeProcess: '流程3', name: '项目5' } ];

const result = transformArray(originalArray); console.log(result);

举报

相关推荐

0 条评论