我正在尝试拆分一个具有重复模式的元素1、2、3和4的数组。我想将数组变成[1,2,3,4,5,6,7,8,9,10]分为四个数组:[1,5,10],[2,6,11],[3,7,12]和[4,8,13]。我尝试使用倍数,但是结果以错误的顺序创建了新数组。这是我的尝试:
var upload_names_and_ids = [
"Certificat de salaire", //first line is the upload's visible title
"certificat-de-salaire", //second line is the upload's id
"no-info-circle", //third line is the info-circle class
"", //fourth line is the info-circle text
"Allocations Familiales",
"alloc-familiales",
"no-info-circle",
"",
"Courrier Impot (déclaration précédente)",
"courrier-impot",
"info-circle right",
""
];
//Seperate our first array into 4
var upload_names = [];
var upload_ids = [];
var upload_info_circle_class = [];
var upload_info_circle_content = [];
for (var i=0; i<upload_names_and_ids.length; i++){
if (i%4==0) {
upload_info_circle_content.push(upload_names_and_ids[i]);
} else if (i%3==0) {
upload_info_circle_class.push(upload_names_and_ids[i]);
} else if (i%2==0) {
upload_names.push(upload_names_and_ids[i]);
} else {
upload_ids.push(upload_names_and_ids[i]);
}
}
非常感谢您的任何帮助,谢谢!
您可以使用索引和所需长度的余数。
const
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
length = 4,
result = array.reduce(
(r, v, i) => (r[i % length].push(v), r),
Array.from({ length }, _ => [])
);
console.log(result);
如果您想直接使用预先声明的数组,则可以替换此行
Array.from({ length }, _ => [])
与
[upload_names, upload_ids, upload_info_circle_class, upload_info_circle_content]
的累加器Array#reduce
保留对象引用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句