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个对象。