返回

掌握 Object.entries() 和 Object.fromEntries(),开启对象转换之旅

前端

Object.entries():对象转数组

Object.entries() 方法可以将一个对象转换成一个数组,其中包含对象的键值对。每个键值对都是一个数组,第一个元素是键,第二个元素是值。例如:

const person = {
  name: "John Doe",
  age: 30,
  city: "New York"
};

const personEntries = Object.entries(person);

console.log(personEntries);

输出结果:

[
  ["name", "John Doe"],
  ["age", 30],
  ["city", "New York"]
]

正如你所看到的,Object.entries() 方法将 person 对象转换成了一个数组,其中包含了三个键值对。

Object.fromEntries():数组转对象

Object.fromEntries() 方法可以将一个数组转换成一个对象,其中包含数组中的键值对。每个键值对都是一个数组,第一个元素是键,第二个元素是值。例如:

const personEntries = [
  ["name", "John Doe"],
  ["age", 30],
  ["city", "New York"]
];

const person = Object.fromEntries(personEntries);

console.log(person);

输出结果:

{
  name: "John Doe",
  age: 30,
  city: "New York"
}

正如你所看到的,Object.fromEntries() 方法将 personEntries 数组转换成了一个对象,其中包含了三个键值对。

使用场景

Object.entries() 和 Object.fromEntries() 方法在实际开发中有很多应用场景。例如:

  • 将对象转换成数组,以便使用数组的方法来处理数据。
  • 将数组转换成对象,以便使用对象的属性来访问数据。
  • 将一个对象的键值对复制到另一个对象中。
  • 将一个对象转换成 JSON 字符串。
  • 将一个 JSON 字符串转换成对象。

注意事项

在使用 Object.entries() 和 Object.fromEntries() 方法时,需要注意以下几点:

  • Object.entries() 方法不会转换对象的原型链中的键值对。
  • Object.fromEntries() 方法不会转换数组中的重复键值对。
  • Object.entries() 方法的返回值是一个浅拷贝,如果对象中的值是引用类型,则浅拷贝不会复制引用类型的值。
  • Object.fromEntries() 方法的返回值是一个浅拷贝,如果数组中的键值对中的值是引用类型,则浅拷贝不会复制引用类型的值。

总结

Object.entries() 和 Object.fromEntries() 方法是 JavaScript 中用来转换对象和数组的实用工具。它们的使用方法简单,并且在实际开发中有许多应用场景。