Map 对象保存键值对 。任何值(对象或者原始值) 都可以作为一个键或一个值 。有趣的是,Map提供了与Object.values()和Object.entries() 等效的方法(只是它们返回Iterators),以便为Map实例提取属性值或键值对:
- Map.prototype.values() 等价于Object.values()
- Map.prototype.entries() 等价于Object.entries()
让我们看看返回.values()和.entries()的map的方法:
// ...[...greetingsMap.values()];// => ['Good morning', 'Good day', 'Good evening'][...greetingsMap.entries()];// => [ ['morning', 'Good morning'], ['midday', 'Good day'], // ['evening', 'Good evening'] ]复制代码注意,greetingsMap.values()和greetingsMap.entries()返回迭代器对象 。若要将结果放入数组,扩展运算符…是必要的 。
对象属性的顺序
JS 对象是简单的键值映射,因此,对象中属性的顺序是微不足道的,在大多数情况下,不应该依赖它 。
在ES5和早期标准中,根本没有指定属性的顺序 。
然而,从ES 6开始,属性的顺序是基于一个特殊的规则的,除非特指按照时间排序 。通过两个新方法Object.getOwnPropertyNames和Reflect.ownKeys来编写示例讲解这一属性排序规则 。
- 数字:当属性的类型时数字类型时,会按照数字的从大到小的顺序进行排序;
- 字符串:当属性的类型是字符串时,会按照时间的先后顺序进行排序;
- Symbol:当属性的类型是Symbol时,会按照时间的先后顺序进行排序 。
总结
Object.values() 和Object.entries() 是为JS开发人员提供新的标准化辅助函数的另一个改进步骤 。
Object.entries()最适用于数组解构赋值,其方式是将键和值轻松分配给不同的变量 。此函数还可以轻松地将纯JS对象属性映射到Map对象中 。、
注意,Object.values()和Object.entries()返回数据的顺序是不确定的,所以不要依赖该方式 。
【JS中轻松遍历对象属性的几种方式】
推荐阅读
- 龙井茶的功效和冲泡方法
- 中年多喝茶 老年少吃药
- 普洱茶的功效研究
- 常喝白茶 竟然有那么多的好处
- 排毒养颜的花草茶 轻松拥有好身材
- 喝补气血的中药老放屁
- 中国拥有多长的海岛岸线 世界上最长的海滩在哪里
- 肉夹馍|选择钓场也是一门学问,钓场周边看地形,岸边环境很重要,水中有鱼腥才更好
- 茶分寒与热 会喝才养生
- 抑制脂肪吸收 轻松减肥就选白茶