如何使用 JavaScript 将对象数组转换为数组?


我们可以使用 Object.values() 方法、Array push() 方法和 for…of 循环来使用 JavaScript 将对象数组转换为数组。首先,我们使用 for…of 循环访问每个对象,然后应用 Object.values() 方法来访问单个对象的 value。然后使用 Array push() 方法将值添加到数组中。在本文中,我们将详细讨论这种方法。

让我们来看一个例子,以便了解这个问题。

给定一个对象数组,任务是将对象数组转换为对象值的数组。以下是我们想要实现的示例。

给定的对象数组 -

let carObj = [
   { name: "John", car: "Ford" },
   { name: "Mark", car: "BMW" },
   { name: "Ben", car: "Toyota" }
] 

应该转换为 -

let carObj = ["John", "Ford", "Mark", "BMW", "Ben", "Toyota" ] 

有多种方法可以实现这一点。其中一些是 -

  • 使用 for...of 循环

  • 使用 array.map 方法

使用 for…of 循环

for…of 循环用于遍历数组或任何可迭代对象的 value。要使用 for...of 循环将对象数组转换为数组,我们使用以下步骤。

步骤

  • 创建一个空数组,我们在其中存储结果值。

  • 使用 for...of 循环遍历对象数组

  • 我们知道数组的项是对象,我们想要其值。

  • 通过 array.push 和 Object.values() 方法将当前对象的值推入空数组。

示例

在这个例子中,我们有一个对象数组。这些对象包含姓名和汽车型号。我们正在提取这些值并将它们分配到一个数组中,使用 for..of 循环。

<html>
<head>
   <title>How to convert Object’s array to an array using JavaScript?</title>
</head>
<body>
   <h3 id="demo">Converting Object’s array to an array using for...of loop</h3>
   <script>
      
      // The car object
      let carObj = [
         { name: "John", car: "Ford" },
         { name: "Mark", car: "BMW" },
         { name: "Ben", car: "Toyota" }
      ]
      
      // Initialize an empty array
      let arr = [];
      
      // Loop through the car object
      for (i of carObj) {
         
         // Push the values of every object into arr
         arr.push(...Object.values(i))
      }
      
      // Print the arr
      document.write("Final Array: " + arr) 
   </script>
</body>
</html>

使用 Array.map() 方法

Array.map() 方法对数组的每个元素调用一个函数,然后返回一个新数组。要使用 Array.map() 方法将对象数组转换为数组,我们使用以下步骤。

  • 在对象数组上应用 map 方法。

  • 每次迭代后,返回您要提取的键的值。

  • 您将获得该特定键的所有值的数组。

示例

在这个例子中,我们有一个对象数组。这些对象包含姓名和汽车型号。我们正在一个单独的数组中提取所有汽车,并在另一个单独的数组中提取所有姓名。

<html>
<head>
   <title>Example- How to convert Object's array to an array using JavaScript</title>
</head>
<body>
   <h3 id="demo">Converting Object's array to an array using Array.map() method</h3>
   <script>
      
      // The car object
      let carObj = [
         { name: "John", car: "Ford" }, 
         { name: "Mark", car: "BMW" },
         { name: "Ben", car: "Toyota" }
      ]
      let nameArr = carObj.map((item) => item.name)
      let carArr = carObj.map((item) => item.car)
      
      // Print the Arrays
      document.write("Names Array : " + nameArr + "<br>")
      document.write("Cars Array : " + carArr)
   </script>
</body>
</html>

更新于: 2023年2月21日

8K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.