Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm phẳng một mảng đối tượng JavaScript thành một đối tượng

Để làm phẳng một mảng đối tượng trong JavaScript thành một đối tượng, chúng tôi đã tạo một hàm nhận mảng đối tượng chỉ là đối số. Nó trả về một đối tượng phẳng với phần nối khóa bằng chỉ mục của nó. Độ phức tạp về thời gian là O (mn) trong đó n là kích thước của mảng và m là số thuộc tính trong mỗi đối tượng. Tuy nhiên, độ phức tạp không gian của nó là O (n) trong đó n là kích thước của mảng thực tế.

Ví dụ

//code to flatten array of objects into an object
//example array of objects
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));

Đầu ra

Sau đây là đầu ra trong bảng điều khiển -

[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"
}