Giả sử cần chuyển mảng lồng mảng sau thành mảng đối tượng với key là chữ cái alphabet:
const data = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]];
Có thể dùng map kết hợp reduce:
Ví dụ
const data = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]; const dataArr = data.map(arr => { return arr.reduce((acc, cur, index) => ({ ...acc, [String.fromCharCode(97 + index)]: cur }), Object.create({})) }); console.log(dataArr);
Kết quả
[ { a: 1, b: 2, c: 3, d: 4 }, { a: 5, b: 6, c: 7, d: 8 }, { a: 9, b: 10, c: 11, d: 12 } ]
String.fromCharCode(97 + index) tạo 'a', 'b', 'c', 'd' (97 là ASCII 'a'). Object.create({}) tạo object prototype rỗng (optional). Cách ngắn gọn hơn: arr.map(row => Object.fromEntries(row.map((v,i) => [String.fromCharCode(97+i), v]))).