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

Chia mảng thành n mảng con xen kẽ - JavaScript

Viết hàm chia mảng thành n mảng con, phân phối xen kẽ: phần tử 1→mảng 1, phần tử 2→mảng 2, ..., phần tử n→mảng n, phần tử n+1→mảng 1,...

Ví dụ

Đầu vào: [656, 756, 5345, 67, 43, 76, 54, 768, 34], n = 3

Kết quả:

[
  [656, 67, 54],
  [756, 43, 768],
  [5345, 76, 34]
]

Giải pháp

Mã triển khai dùng reduce:

const input = [656, 756, 5345, 67, 43, 76, 54, 768, 34];

const divideArray = (arr, size) => 
  arr.reduce((acc, val, ind) => {
    const subIndex = ind % size;
    if (!Array.isArray(acc[subIndex])) acc[subIndex] = [];
    acc[subIndex].push(val);
    return acc;
  }, []);

console.log(divideArray(input, 3));

Kết quả

Đầu ra trong console:

[[656, 67, 54], [756, 43, 768], [5345, 76, 34]]