JavaScript 将对象的数组转换为数组的对象

JavaScript 将对象的数组转换为数组的对象

问题说明要求将对象的数组完全转换为数组的对象,其中对象的数组由用户提供为输入源,并且给定的输入可以完全成功地转换为结果的数组对象。

什么是JavaScript中的数组

如果您熟悉其他编程语言如CC++或Java,您一定听说过“数组”这个术语。

在编程中,数组是一组相似的数据元素集合在一起。

现在,一个重要的问题出现了:如果数组在所有语言中通常是相同的,那么JavaScript如何使数组更加独特和可用?

让我们了解一下JavaScript中数组的整体工作方式。

数组是存储多个元素的对象。由于数组也是一个对象,它具有一些属性和方法,使得在JavaScript中更容易使用数组。

以下是在JavaScript中定义数组的语法:−

const arrayExample  = [ 2 , 3 , 5 ,6 ];
console.log(arrayExample);

输出

[2, 3, 5, 6]

JavaScript中的对象是什么

JavaScript中的对象是一组键值对的集合,其中键值对被称为对象的属性。对象的属性也可以是函数或方法。用户还可以轻松地定义自己的自定义对象。

以下是JavaScript中定义对象的语法:-

const student = 
{
    name : "Ashish",
    course : "Javascript",
    from : "tutorialspoint",
    display : function(){
        console.log(student.name + " " + "is learning" + " " + student.course + " from " + student.from)
    }
}

student.display()

输出

Ashish is learning Javascript from tutorialspoint

在Javascript中,什么是对象数组

数组是有序的数据集合,而对象是无序的数据集合,例如对象代表了汽车的属性,对象数组代表了所有类型的汽车的特定属性。因此,对象数组是一个有序的包含多个对象的集合。

对象数组的语法如下:

let studentArray = [
  {
    "name": "priya",
    "course": "JS",
    "from": "tutorialspoint",

  },
  {
    "name": "ashish",
    "course": "React",
    "from": "tutorialspoint",
  },
  {
    ...
  },
  ...
]

JavaScript中的数组对象是什么

在JavaScript中,对象设置了一个真实世界实体的属性,该实体有时还可以累积某个键值对的元素数组,从而形成JavaScript中的数组对象概念,它使得对象具有复杂性和严谨性,并包含大量的数据。

数组对象的语法如下:

let studentObject = 
  {
    "name": "priya",
    "course": ["JS", "React","Python" ,"CSS"],
    "from": "tutorialspoint",

  }

console.log(studentObject);

步骤

步骤1 - 声明一个名为objectToArrayConversion的函数,该函数以对象数组作为参数。

步骤2 - 我们需要从对象数组转换为数组对象,因此需要一个命名为空的resultantObject。

步骤3 - 使用for循环遍历对象数组,直到其length属性,以便使用Object.keys方法提取出对象数组的键。

步骤4 - 一旦提取出所有键,我们可以遍历数组对象中所有键的长度,如果resultObject拥有相应键对应的值对,使用javascript中的hasOwnProperty方法将其推入到resultObject中。

步骤5 - 如果resultObject中没有该键,则将特定的键值对分配给resultObject。

步骤6 - 循环结束后,返回resultObject的所有键值对,将数组对象的特定键赋予多个值。

示例

function objectToArrayConversion(arrayOfObject)
{
    const resultObject = { };
    for(let i =0 ; i<arrayOfObject.length ; i++ )
    {
        const keys = Object.keys(arrayOfObject[i])
        for(let j = 0 ; j<keys.length ; j++)
        {
            if(resultObject.hasOwnProperty(keys[j]))
            {
                 resultObject[keys[j]].push(arrayOfObject[i][keys[j]]);
            }
            else 
            {
                resultObject[keys[j]] = [arrayOfObject[i][keys[j]]];
            }
        }
    }
    return resultObject;
}

let studentArray = [
  {
    "name": "priya",
    "course": "JS",
    "from": "tutorialspoint",

  },
  {
    "name": "ashish",
    "course": "React",
    "from": "tutorialspoint",
  }
  ]

  console.log(objectToArrayConversion(studentArray))

使用上述算法的特定代码在控制台上的问题陈述如下:

输出

{
  name: [ 'priya', 'ashish' ],
  course: [ 'JS', 'React' ],
  from: [ 'tutorialspoint', 'tutorialspoint' ]
}

时间和空间复杂度

以下问题陈述使用了JavaScript的Object.keys和hasOwnProperty方法来遍历元素数组,在最坏情况下的时间复杂度为O(n)。问题陈述的空间复杂度为O(1)。

结论

这就是我们如何在逻辑和编码上解决上述问题陈述的方法,充分利用JavaScript方法的最有效使用情况。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程