Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Chia mảng thành các khối (chunking) trong JavaScript

Viết hàm chunk() nhận mảng arr (chuỗi/số) và số n. Trả về mảng n mảng con, mỗi mảng con chứa tối đa arr.length / n phần tử. Phân phối: phần tử 1 vào mảng con 1, phần tử 2 vào mảng con 2, ... khi mỗi mảng con có 1 phần tử, tiếp tục điền phần tử 2 vào mảng con 1, và cứ thế.

Ví dụ:

// input: [1, 2, 3, 4, 5, 6]// output: [ [1, 4], [2, 5], [3, 6] ]

Sử dụng Array.prototype.reduce():

Ví dụ

const input = [1, 2, 3, 4, 5, 6, 7, 8, 9];const chunk = (arr, size) => {  return arr.reduce((acc, val, ind) => {    const subIndex = ind % size;    if (!Array.isArray(acc[subIndex])) {      acc[subIndex] = [val];    } else {      acc[subIndex].push(val);    }    return acc;  }, []);};console.log(chunk(input, 4));

Kết quả

Đầu ra trong console sẽ là:

[ [ 1, 5, 9 ], [ 2, 6 ], [ 3, 7 ], [ 4, 8 ] ]