如何使用 JavaScript 将长数组拆分为较小的数组

2022-08-30 04:06:12

我有一个电子邮件数组(它可能只有 1 封电子邮件,也可以是 100 封电子邮件),我需要发送带有 ajax 请求的数组(我知道该怎么做),但我只能发送一个包含 10 封或更少电子邮件的数组。因此,如果有一个由 20 封电子邮件组成的原始数组,我需要将它们拆分为 2 个数组,每个数组 10 个。或者,如果原始数组中有 15 封电子邮件,则为 1 个数组(共 10 封),另一个数组(共 5 封)。我正在使用jQuery,最好的方法是什么?


答案 1

不要使用 jquery...使用普通的javascript

var a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];

var b = a.splice(0,10);

//a is now [11,12,13,14,15];
//b is now [1,2,3,4,5,6,7,8,9,10];

您可以循环访问此函数以获取所需的行为。

var a = YOUR_ARRAY;
while(a.length) {
    console.log(a.splice(0,10));
}

这将一次为您提供10个元素...如果你有15个元素,你会得到1-10,11-15,就像你想要的那样。


答案 2
var size = 10; var arrayOfArrays = [];
for (var i=0; i<bigarray.length; i+=size) {
     arrayOfArrays.push(bigarray.slice(i,i+size));
}
console.log(arrayOfArrays);

splice()不同slice()对原始数组是非破坏性的。