Javascript Object.entries() 用法详解

举报
林欣 发表于 2024/11/15 11:49:43 2024/11/15
【摘要】 Object.entries() 定义Object.entries() 是 JavaScript 的一个内置方法,它返回一个给定对象自身可枚举属性的键值对数组,其排列与通过手动遍历对象属性返回的顺序一致(区别在于 for...in 循环枚举原型链中的属性)。数组中每个元素都是一个包含两个元素的数组,第一个元素是键名,第二个元素是键值。 用法详解语法:Object.entries(obj)o...

Object.entries() 定义

Object.entries() 是 JavaScript 的一个内置方法,它返回一个给定对象自身可枚举属性的键值对数组,其排列与通过手动遍历对象属性返回的顺序一致(区别在于 for...in 循环枚举原型链中的属性)。数组中每个元素都是一个包含两个元素的数组,第一个元素是键名,第二个元素是键值。

用法详解

语法

Object.entries(obj)
  • obj:要返回其键值对的对象。

返回值

  • 一个数组,其元素是键值对数组,每个键值对数组的第一个元素是键名(字符串类型),第二个元素是键值(可以是任何类型)。

示例代码

const obj = { foo: 'bar', baz: 42 };
console.log(Object.entries(obj));
// 输出: [['foo', 'bar'], ['baz', 42]]

// 转换对象到 Map
const map = new Map(Object.entries(obj));
console.log(map);
// 输出: Map(2) { 'foo' => 'bar', 'baz' => 42 }

// 遍历对象的键值对
for (const [key, value] of Object.entries(obj)) {
  console.log(`${key}: ${value}`);
}
// 输出:
// foo: bar
// baz: 42

// 使用 Object.entries() 转换对象并过滤键值对
const filteredEntries = Object.entries(obj).filter(([key, value]) => typeof value === 'string');
console.log(filteredEntries);
// 输出: [['foo', 'bar']]

// 将键值对数组转换回对象
const newObj = Object.fromEntries(filteredEntries);
console.log(newObj);
// 输出: { foo: 'bar' }

注意事项

  • Object.entries() 只返回对象自身的可枚举属性,不包括从原型链上继承的属性。
  • 返回的数组中的键值对顺序与通过手动遍历对象属性时的顺序一致。
  • 可以使用 for...of 循环来遍历 Object.entries() 返回的数组。
  • Object.entries() 方法可以与 Object.fromEntries() 方法结合使用,以实现对象与键值对数组之间的转换。

使用场景

  • 当需要将对象的键值对转换为数组进行处理时,可以使用 Object.entries()
  • 在需要遍历对象的键值对时,Object.entries() 提供了一种更直观、更易于理解的方式。
  • 在处理对象时,如果需要过滤、映射或转换键值对,可以先使用 Object.entries() 将对象转换为数组,然后进行相应的操作,最后使用 Object.fromEntries() 将数组转换回对象(如果需要的话)。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。