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

Làm phẳng (Flatten) mảng đối tượng thành đối tượng trong JavaScript


Để làm phẳng mảng đối tượng thành một đối tượng, ta tạo hàm nhận mảng đối tượng, trả về object phẳng với key nối thêm index. Độ phức tạp thời gian O(mn) (n kích thước mảng, m số property mỗi object), không gian O(n).

Ví dụ

// code làm phẳng mảng đối tượng thành object // mảng đối tượng ví dụ const notes = [ { title: 'Hello world', id: 1 }, { title: 'Grab a coffee', id: 2 }, { title: 'Start coding', id: 3 }, { title: 'Have lunch', id: 4 }, { title: 'Have dinner', id: 5 }, { title: 'Go to bed', id: 6 }, ]; const returnFlattenObject = (arr) => { const flatObject = {}; for(let i=0; i<arr.length; i++){ for(const property in arr[i]){ flatObject[`${property}_${i}`] = arr[i][property]; } }; return flatObject; } console.log(returnFlattenObject(notes));

Kết quả

Kết quả console:

[object Object] { id_0: 1, id_1: 2, id_2: 3, id_3: 4, id_4: 5, id_5: 6, title_0: "Hello world", title_1: "Grab a coffee", title_2: "Start coding", title_3: "Have lunch", title_4: "Have dinner", title_5: "Go to bed" }

Mỗi property được đổi tên thành property_index để tránh ghi đè. Cách khác: Object.assign({}, ...arr.map((o,i) => Object.fromEntries(Object.entries(o).map(([k,v]) => [`${k}_${i}`, v])))).