DeathGhost

Object.entries() 与 Object.fromEntries() 方法应用

这篇文章发布于 2019年08月17日 17:03 星期六 阅读 463 次,评论 0 条

DeathGhost 编辑,归类于javascript »

Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,而Object.fromEntries() 方法把键值对列表转换为一个对象。

Object.fromEntries是内置JavaScript库的有用补充。在解释它的作用之前,有助于理解预先存在的Object.entriesAPI;因此这篇文章将其罗列到一起。

ECMAScript,ES2019,entries,fromEntries
ECMAScript,ES2019,entries,fromEntries

一、Object.entries()

Object.entries()返回一个数组,其元素是与直接在object上找到的可枚举属性键值对相对应的数组。属性的顺序与通过手动循环对象的属性值所给出的顺序相同。

对于对象中的每个键值对,Object.entries给出一个数组,其中第一个元素是键,第二个元素是值。

语法

Object.entries(obj)

示例

const user = {
  userName: 'DeathGhost',
  age: 18,
  city: '西安',
  url: 'deathghost.cn',
}
console.log(Object.entries(user));

结果则是属性键与值相对应的数组

[Array(2), Array(2), Array(2), Array(2)]
0: (2) ["userName", "DeathGhost"]
1: (2) ["age", 15]
2: (2) ["city", "西安"]
3: (2) ["url", "deathghost.cn"]

二、Object.fromEntries()

Object.fromEntries() 方法接收一个键值对的列表参数,并返回一个带有这些键值对的新对象。这个迭代参数应该是一个能够实现@iterator方法的的对象,返回一个迭代器对象。它生成一个具有两个元素的类数组的对象,第一个元素是将用作属性键的值,第二个元素是与该属性键关联的值。

新Object.fromEntriesAPI执行的反转Object.entries。这样可以根据条目轻松重建对象。

语法

Object.fromEntries(iterable);

示例

按上面示例,其user对象返回一个数组。

[["userName","DeathGhost"],["age",15],["city","西安"],["url","deathghost.cn"]]
Object.fromEntries(Object.entries(user))

通过Object.fromEntries()方法最终返回

{userName: "DeathGhost", age: 15, city: "西安", url: "deathghost.cn"}

通过示例结果, 可以看出 Object.fromEntries 是 Object.entries() 的反转函数。

在使用 Object.fromEntries 需要注意的是其键的唯一性,否则会被丢失

如同:

age键重复,则会数据丢失,出现如下结果。

const user = {
  userName: 'DeathGhost',
  age: 18,
  age: 15,
  city: '西安',
  url: 'deathghost.cn',
}
// {userName: "DeathGhost", age: 15, city: "西安", url: "deathghost.cn"}
在任何媒介以任何形式复制、发行本作品。惟须遵守下列条件:
署名 — 您必须给出适当的署名,提供指向本许可协议的链接,同时标明是否(对原始作品)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示许可人为您或您的使用背书。
非商业性使用 — 您不得将本作品用于商业目的。
禁止演绎 — 如果您 再混合、转换、或者基于该作品创作,您不可以分发修改作品。

©️ DeathGhost 署名-非商业性使用-禁止演绎(CC BY-NC-ND)

用户评论(当前评论共计0条)

⚠️ 评论内容需要审核方可显示。
DeathGhost

孙志锋

视觉前端爱好者

志于道,据于德,依于仁,游于艺。

4

目录

33

文章

14

评论

相关文章

上一篇:JavaScript flat 提取嵌套数组元素

世界品牌·洛川红富士

🙏 到访,就是一种鼓励,谢谢你的到访!🙏

💕与君共勉💕