prosoal: object values/entries

Object.entries()

  • MDN: Object.entries

此方法签名如下:

Object.entries(value : any) : Array<[string,any]>

如果 JavaScript 数据结构具有键和值,条目是一个键值对,被编码为2元数组。Object.entries(x) 强制 x 为一个对象,并返回一个给定对象自己的可枚举属性[key,value]对的数组:

let obj = { one: 1, two: 2 };
for (let [k,v] of Object.entries(obj)) {console.log(`${JSON.stringify(k)}: ${JSON.stringify(v)}`);
}
// Output:
// "one": 1
// "two": 2Object.entries(obj)
// [["one",1],["two",2]]

其键为 symbols 的属性被忽略:

Object.entries({ [Symbol()]: 123, foo: 'abc' });
// [ [ 'foo', 'abc' ] ]

通过 Object.entries() 设置为 Map 对象

Object.entries() 还允许你将一个对象设置为 Map 对象。这比使用2元数组的数组更简洁,但是键只能是字符串。

let map = new Map(Object.entries({one: 1,two: 2,
}));
console.log(JSON.stringify([...map]));
// [["one",1],["two",2]]

也可以处理复杂的数据结构

const info = {name: 'joey',age: 10,getName: function(){return 'hello'},person: {nick: 'yes',getInfo: function(){return false;}}
}
Object.entries(info);

=>

[['name', 'joey'],['age',10],['getName', function],['person',{nick:'yes', getInfo: function}]]

Object.values()

  • MDN: Object.values

Object.values()方法返回一个给定对象自身的所有__可枚举__属性值的数组,值的顺序与使用for…in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。

此方法签名如下:

Object.values(value : any) : Array<any>

它的工作原理很像 Object.entries() ,但是,正如其名称所示,它只返回自己可枚举的字符串键属性的值:

Object.values({ one: 1, two: 2 }); // [ 1, 2 ]

Object.keys()

  • MDN: Object.keys

Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致。

常见问题

  • 为什么 Object.entries() 的返回值是一个数组而不是一个迭代器?

在这种情况下的相关先例是 Object.keys() ,而不是,例如 Map.prototype.entries()

  • 为什么 Object.entries() 只返回自己的可枚举的字符串键属性?

再次说明,这样做与 Object.keys() 一致。该方法也忽略其 symbols 键的属性。最终,可能会有一个返回所有属性的 Reflect.ownEntries() 方法。

Object.entries() Object.values()相关推荐

  1. es6 Object.keys(),Object.values(),Object.entries()

    Object.keys(),Object.values(),Object.entries() Object.keys() ES5 引入了Object.keys()方法,返回一个数组,成员是参数对象自身 ...

  2. Object.keys()、Object.values()、Object.entries()的用法

    一.Object.keys(obj) 参数:要返回其枚举自身属性的对象 返回值:一个表示给定对象的所有可枚举属性的字符串数组 处理对象,返回可枚举的属性数组 let person = {name:&q ...

  3. JavaScript深入理解对象方法——Object.entries()

    Object.entries() Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in ...

  4. linq结果转换object_你知道Object.entries(),但你还知道有Object.fromEntries()吗?

    我们得到 object.entries(),它转换一个object → array.但是,如果您想做相反的事情怎么办?不用再想了! 使用 Object.fromEntries() 来array → o ...

  5. javascript 中Object.entries

    参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/entries O ...

  6. Object.entries()方法的使用和实现

    1.定义 Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环还会枚举原型链中的 ...

  7. ES6~ES12——Array Includes、Object values、Object entries、Object fromEntries、flat、flatMap、空值合并运算符、可选链等

    一.ES7 - Array Includes 在ES7之前,如果我们想判断一个数组中是否包含某个元素,需要通过 indexOf 获取结果,并且判断是否为 -1. 在ES7中,我们可以通过include ...

  8. Object.keys、Object.values、Object.entries详解

    1. Object.keys 返回一个所有元素为字符串的数组,其元素来自于从给定的object上面可直接枚举的属性.这些属性的顺序与手动遍历该对象属性时的一致 // simple array var ...

  9. ES6语法~解构赋值、箭头函数、class类继承及属性方法、map、set、symbol、rest、new.target、 Object.entries......

    2015年6月17日 ECMAScript 6发布正式版本 前面介绍基本语法,  后面为class用法及属性方法.set.symbol.rest等语法. 一.基本语法:  1.         定义变 ...

最新文章

  1. 论 MySql InnoDB 如何通过插入意向锁控制并发插入
  2. leetcode算法题--数字序列中某一位的数字
  3. Python语言学习之pandas:DataFrame二维表的简介、常用函数、常用案例之详细攻略
  4. 怎么判断一个字符串的最长回文子串是否在头尾_LeetCode5:最长回文子串
  5. Swift之深入解析枚举enum的底层原理
  6. .NET 指南:捕获并且抛出标准的异常类型
  7. php socket 多次发送,php模拟socket 多次发送数据的实现方法
  8. Flutter ScrollView 滑动组件
  9. Java 蓝桥杯 分解质因数
  10. 深度剖析 | 基于大数据架构的BI应用
  11. java计算list集合中重复对象的次数及for循环内外创建对象
  12. python界面开发webview_Python+Appium学习篇之WebView处理
  13. 电脑会在哪些地方暴露你的隐私
  14. Linux第二周考试题
  15. 网络安全传输(读书笔记)
  16. 卡盟销售官网源码php,卡盟整站程序源码 php版
  17. 专业计算机英语词汇翻译,计算机专业英语词汇与翻译复习题(已完成)
  18. cad立体图怎么旋转看图_教大家CAD迷你看图如何旋转图纸
  19. 【软考系统架构设计师】2019年下系统架构师案例分析历年真题
  20. HTML特效,旋转的正方体

热门文章

  1. 图像和流媒体 -- 帧率、分辨率、码流的概念和关系
  2. 电影级视觉特效插件:Red Giant VFX Suite for mac
  3. 视频封面如何消重 修改视频md5 百度网盘
  4. calamari项目结构解析
  5. Java之List系列--ArrayList保证线程安全的方法
  6. 有关java开发的单词_Java开发常用英语单词表
  7. 孙悟空这个农村人(搞笑)
  8. 文件排版1(C语言)
  9. SICTF2023 Osint-wp
  10. 菜鸟 Linux系统学习1简介 安装 云服务器 启动过程