我是javascript的新手。我有500个或更多项目的清单。我需要将此数组拆分为子数组,每个子数组包含20个项目。如果有500个项目,每个数组包含20个项目,则为25个数组。我创建了25个数组,如下所示:
var firstSet=[];
var secondSet=[];
.....
我使用for循环填充每个数组。在javascript中如何以编程方式进行编程,因为将来主列表可以返回超过500个项目,并且将来每个子数组应该配置超过20个项目。解决这种情况的最佳解决方案是什么?
答案 0 :(得分:1)
正如评论所说,你应该用2维数组分割它:
var mainArray=[1,2,3,4,5,6,7,8,9,10];
function splitArray(arr,qty){
var mainArr=[], subarr=[];
for(var i=0;i<arr.length;i++){
subarr.push(arr[i]);
if( ((i+1) % qty == 0) || i+1==arr.length){
mainArr.push(subarr);
subarr=[];
}
}
return mainArr;
}
console.log(splitArray(mainArray,2));
这将创建一个包含5个索引的数组。在每个索引中,您有一个包含2个元素的数组。所以它将它分为[1,2],[3,4],[5,6],[7,8],[9,10]
答案 1 :(得分:-1)
使用嵌套循环从原始数据创建二维数组。
var sets = [];
var items_per_set = 20;
for (var i = 0, outer = 0; i < list.length; i += items_per_set, outer++) {
sets[outer] = [];
var limit = Math.min(list.length, i+items_per_set);
for (j = i; j < limit; j++) {
sets[outer].push(list[j]);
}
}