gpt4 book ai didi

javascript - 根据属性将数组拆分为不同大小的 block

转载 作者:行者123 更新时间:2023-11-29 20:51:10 24 4
gpt4 key购买 nike

我有以下数组

var array=[{ semster:1, name:Book1 }, { semster:1, name:Book2 }, { semster:2, name:Book4 }, { semster:3, name:Book5 }, { semster:3, name:Book6 }, { semster:4, name:Book7 }]

现在我想对我的数组进行排序,将当前数组拆分成数组 block ,如下所示

var array=[[{ semster:1, name:Book1 }, { semster:1, name:Book2 }],[ { semster:2, name:Book4 }], [{ semster:3, name:Book5 }, { semster:3, name:Book6 }], [{ semster:4, name:Book7 }]]

我试图用下面的代码来实现这个:

function splitIntoSubArray(arr, count) {
var newArray = [];
while (arr.length > 0) {
newArray.push(arr.splice(0, count));
}
return newArray;
}

但是这样只能按照固定大小划分数组。任何类型的建议表示赞赏。

谢谢

最佳答案

您可以简单地使用 Array.reduce() 按学期对项目进行分组。 map 上的 Object.values() 可为您提供所需的结果。

var array=[{ semster:1, name:"Book1" }, { semster:1, name:"Book2" }, { semster:2, name:"Book4" }, { semster:3, name:"Book5" }, { semster:3, name:"Book6" }, { semster:4, name:"Book7" }];

var result = Object.values(array.reduce((a, curr)=>{
(a[curr.semster] = a[curr.semster] || []).push(curr);
return a;
},{}));

console.log(result);

关于javascript - 根据属性将数组拆分为不同大小的 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51799017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com