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