/** * 将数组中具有相同属性值的元素分组 * @param arr 数组 * @param prop 属性 * @returns */ export function useGroup(arr: any, prop: string): any { var groups = {} as any // 创建空对象作为存储结果的容器 let result = [] as any for (var i = 0; i < arr.length; i++) { var key = arr[i][prop] // 获取当前元素的指定属性值 if (!groups[key]) { groups[key] = [] // 如果该属性值不存在于结果中,则新建一个空数组 } groups[key].push(arr[i]) // 将当前元素添加到对应属性值所对应的数组中 } Object.values(groups).forEach((item) => { result = result.concat(item) }) return result // 返回包含了按属性值分组后的数组的数组 }