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

Chia mảng một chiều thành mảng hai chiều JavaScript

Viết hàm nhận mảng 1 chiều và số n, chia thành n mảng con (nếu có thể) và phân phối phần tử tương ứng.

Lưu ý: nếu 9 phần tử chia 4 mảng con → 2 phần tử/mảng tạo 5 mảng, 3 phần tử tạo 3 mảng → fallback về mức thấp gần nhất (3) vì yêu cầu phân phối đều trừ mảng cuối.

Ví dụ:

// Input: ['A','B','C','D','E','F','G','H','I'], n=2// Output: [['A','B','C','D','E'], ['F','G','H','I']]

Ví dụ

const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'];const splitArray = (arr, rows) => {  const itemsPerRow = Math.ceil(arr.length / rows);  return arr.reduce((acc, val, ind) => {    const currentRow = Math.floor(ind / itemsPerRow);    if (!acc[currentRow]) {      acc[currentRow] = [val];    } else {      acc[currentRow].push(val);    }    return acc;  }, []);};console.log(splitArray(arr, 2));

Kết quả

Đầu ra trong console sẽ là:

[ ['A', 'B', 'C', 'D', 'E'], ['F', 'G', 'H', 'I'] ]