在 JavaScript 中將物件轉換為物件陣列
在給定的問題陳述中,我們需要藉助 JavaScript 功能將物件轉換為物件陣列。為了執行將物件轉換為物件陣列的轉換,我們可以使用 JavaScript 的內建方法。
什麼是 JavaScript 中的陣列?
陣列是在一個屋簷下收集相似資料元素的集合。因此,讓我們瞭解 JavaScript 中陣列的整體工作流程。陣列是一個包含一個或多個元素的物件。因此,它具有一些屬性和方法,使在 JavaScript 中更輕鬆地使用陣列。
例如
const arr = [2, 4, 6, 8]; console.log(arr);
輸出
[2, 4, 6, 8]
什麼是 JavaScript 中的物件?
在 JavaScript 中,物件是一個具有屬性及其型別的實體。例如,我們有一輛汽車。汽車是一個物件,它具有一些屬性,例如顏色、型號、設計和重量等。類似地,物件具有用於定義其特徵的屬性。讓我們看看下面程式碼中物件的示例
// Object example car object
const carObj = {
name: "Audi",
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 }
};
// Function to display properties of car object
function display() {
console.log("My car's name is " + carObj.name + " and it is " + carObj.color + " with " + carObj.wheels + " wheels.");
}
display()
輸出
My car's name is Audi and it is red with 4 wheels.
什麼是 JavaScript 中的物件陣列?
正如我們上面所看到的,陣列是相似型別資料的集合,而物件陣列是一個包含物件作為其資料的陣列。例如,我們有一個名為 employees 的物件陣列,它具有一些屬性,例如名稱、職位和來自。
const employees = [
{
"name": "Alok",
"designation": "Software developer",
"from": "Pune",
},
{
"name": "Ashish",
"designation": "Content developer",
"from": "Mumbai",
},
{
...
},
…]
如何轉換物件陣列?
在 JavaScript 中,我們需要藉助 map、filter 和 reduce 等陣列方法來執行將物件轉換為物件陣列的轉換。或者,我們可以使用這些方法的組合來建立一個新的物件陣列,其中包含來自現有陣列的所需屬性或值。例如,如果我們有多種元素來處理具有名稱、成本和類別的專案。
上述問題的邏輯
實現上述問題的最簡單方法是使用 JavaScript 的預定義方法。
因此,讓我們瞭解給定問題的邏輯。為了將物件轉換為物件陣列,我們將使用一個名為 objPerson 的陣列,其中包含一些屬性。現在,在定義陣列之後,我們需要迭代物件的全部屬性,並且在此過程中,我們將使用 forEach 方法,然後我們將組合重複的名稱並組合它們的屬性以減小陣列的大小。執行此操作後,我們將把新的物件陣列推送到 arrayOfObject 中。
示例
const objPerson = {
"Amit_Age": 32,
"Amit_Height": 174,
"Amit_Weight": 66,
"Yogesh_Age": 29,
"Yogesh_Height": 169,
"Yogesh_Weight": 59
};
const arrayOfObject = (objPerson = {}) => {
const res = [];
Object.keys(objPerson).forEach(el => {
const part = el.split('_');
const person = part[0];
const info = part[1].toLowerCase();
if(!this[person]){
this[person] = {
"name": person
};
res.push(this[person]);
}
this[person][info] = objPerson[el];
}, {});
return res;
};
console.log(arrayOfObject(objPerson));
輸出
[
{ name: 'Amit', age: 32, height: 174, weight: 66 },
{ name: 'Yogesh', age: 29, height: 169, weight: 59 }
]
複雜度
以下問題陳述使用 JavaScript 方法(如 Object.keys 和 push 方法)來解決,這些方法遍歷陣列中的元素,最壞情況下的時間複雜度為 O(n)。問題陳述的空間複雜度為 O(n),因為它儲存了 n 個物件。
結論
以下問題陳述使用 JavaScript 方法(如 Object.keys 和 push 方法)來解決,這些方法遍歷陣列中的元素,最壞情況下的時間複雜度為 O(n)。問題陳述的空間複雜度為 O(n),因為它儲存了 n 個物件。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP