ES8 中的 Object.entries() 方法详解和使用场景

在 ES8 中,新增了 Object.entries() 方法,可以将一个对象转换为一个由键值对数组组成的数组。本文将介绍 Object.entries() 方法的详细使用方法以及其适用场景。

语法

Object.entries(obj)

  • obj:要转换的对象。

返回值

返回一个由键值对组成的数组,每个键值对的格式为 [key, value],其中 key 是原对象的属性名称,value 是属性值。

示例

const myObj = { 
  name: 'Alice', 
  age: 20, 
  gender: 'female' 
};
const myArr = Object.entries(myObj);
console.log(myArr);
// output: [["name", "Alice"], ["age", 20], ["gender", "female"]]

使用场景

遍历对象

使用 Object.entries() 方法可以方便地遍历对象中的属性和值。

const myObj = { 
  name: 'Alice', 
  age: 20, 
  gender: 'female' 
};
for(let [key, value] of Object.entries(myObj)){
    console.log(`${key}: ${value}`)
}
//output: 
//name: Alice 
//age: 20 
//gender: female

将对象转换为 Map 对象

Map 对象是 ES6 引入的一个新的数据类型,它是一种集合,其中每个元素都是由键值对组成的。使用 Object.entries() 方法可以将一个对象转换为一个 Map 对象。

const myObj = { 
  name: 'Alice', 
  age: 20, 
  gender: 'female' 
};
const myMap = new Map(Object.entries(myObj));
console.log(myMap);
//output: Map(3) { "name" => "Alice", "age" => 20, "gender" => "female" }

转换为数组过滤属性

使用 Object.entries() 方法可以将一个对象转换为数组,然后就可以使用数组 filter() 方法来过滤属性。

const myObj = { 
  name: 'Alice', 
  age: 20, 
  gender: 'female' 
};
const myArr = Object.entries(myObj).filter(([key, value]) => key !== 'age');
console.log(myArr);
//output: [["name", "Alice"], ["gender", "female"]]

总结

通过本文的介绍,我们了解到了 Object.entries() 方法的语法、返回值、使用场景以及示例代码。Object.entries() 方法在遍历对象、将对象转换为 Map 对象、转换为数组过滤属性等场景下非常实用,可以提高开发效率。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65a8ef30add4f0e0ff232d38


纠错反馈