大家好,我是林三心,众所周知(不要问我谁是“众所”),Map 是 ES6 中新增的数据结构,Map 类似于对象,但普通对象的 key 必须是字符串或者数字,而 Map 的 key 可以是任何数据类型,那么如何排序一个Map对象呢?啊?Map还能排序呀?看看呗

设置一个乱序的Map对象

const map = new Map() // 我偏偏要乱序,你能咋地
map.set(2, '林二心')
map.set(1, '林一心')
map.set(5, '林五心')
map.set(4, '林四心')
map.set(3, '林三心')
console.log(map) // Map { 2 => '林二心', 1 => '林一心', 5 => '林五心', 4 => '林四心', 3 => '林三心' }

Array.from(此方法可将一个类数组对象或者可遍历对象转换成真正数组)

const map = new Map()
map.set(2, '林二心')
map.set(1, '林一心')
map.set(5, '林五心')
map.set(4, '林四心')
map.set(3, '林三心')
console.log(map) // Map { 2 => '林二心', 1 => '林一心', 5 => '林五心', 4 => '林四心', 3 => '林三心' }
const arr = Array.from(map)
console.log(arr) /* [ [ 2, '林二心' ],[ 1, '林一心' ],[ 5, '林五心' ],[ 4, '林四心' ],[ 3, '林三心' ] ] */

排序(本文章只是举个例子,具体怎么排序还得看转出来的arr是怎么样的)

const map = new Map()
map.set(2, '林二心')
map.set(1, '林一心')
map.set(5, '林五心')
map.set(4, '林四心')
map.set(3, '林三心')
console.log(map) // Map { 2 => '林二心', 1 => '林一心', 5 => '林五心', 4 => '林四心', 3 => '林三心' }
const arr = Array.from(map)
console.log(arr) /* [ [ 2, '林二心' ],[ 1, '林一心' ],[ 5, '林五心' ],[ 4, '林四心' ],[ 3, '林三心' ] ] */
arr.sort((a, b) => a[0] - b[0])
console.log(arr) /* [ [ 1, '林一心' ],[ 2, '林二心' ],[ 3, '林三心' ],[ 4, '林四心' ],[ 5, '林五心' ] ] */

转回Map对象(Map( [ [a, b], [c, d] ] )会生成 { a => b, c => d }Map对象)

const map = new Map()
map.set(2, '林二心')
map.set(1, '林一心')
map.set(5, '林五心')
map.set(4, '林四心')
map.set(3, '林三心')
console.log(map) // Map { 2 => '林二心', 1 => '林一心', 5 => '林五心', 4 => '林四心', 3 => '林三心' }
const arr = Array.from(map)
console.log(arr) /* [ [ 2, '林二心' ],[ 1, '林一心' ],[ 5, '林五心' ],[ 4, '林四心' ],[ 3, '林三心' ] ] */
arr.sort((a, b) => a[0] - b[0])
console.log(arr) /* [ [ 1, '林一心' ],[ 2, '林二心' ],[ 3, '林三心' ],[ 4, '林四心' ],[ 5, '林五心' ] ] */
const map2 = new Map(arr) // 成功转化
console.log(map2) // Map { 1 => '林一心', 2 => '林二心', 3 => '林三心', 4 => '林四心', 5 => '林五心' }

知识点:Map对象的设置方法,转换方法,以及Array的from方法。加油!你们会有女朋友的!!!## 标题

ES6:连女朋友看了都喜欢的小知识-如何排序一个Map对象相关推荐

  1. 多暂估的库存如何调整_会计们看过来 暂估存货小知识

    原标题:会计们看过来 暂估存货小知识 按照相应会计政策和制度规定,企业在作外购入库核算时,必须基于材料已经验收入库.材料货款已经结算,要有外购发票.外购入库单等相关单据票据. 现在很多企业在生产经营过 ...

  2. ES6最通俗易懂的超重点保姆级笔记!女朋友看了都流泪的学习秘籍!没有一句废话,全部都是满满干货!

    1. ES6 1.1 let和const命令 1.1.1 let 特性 变量不能重复声明 let star='罗志祥'; let star='小猪' //error let有块级作用域 {let gi ...

  3. JVM-内存与垃圾回收篇!女朋友看了都想当架构师的超详细保姆级笔记!呕心沥血之作!看完还不会你砍我!

    1. JVM与Java体系结构 1.1 Java虚拟机 Java虚拟机是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成. JVM平台的各种 ...

  4. 值得程序员一看的 8 个冷门小知识

    想要成为一名成功的程序员,我们除了了解不同编程语言的设计思路,也应当了解编程的发展历史,从而判断未来的编程技术将走向何方.接下就为大家普及下计算机发展历程中的8个冷门小知识! 1.第一台电脑为蒸汽驱动 ...

  5. 云摆摊 | 手把手教你制作ESP8266物联网创意点阵时钟,女朋友看了都想要!

    前段时间我(作者:默)在网上看到了一款很有意思的点阵时钟,它可以播报天气,查看 YouTube 的订阅数,还有好看的时间动画.你可以把它当做普通闹钟,也可以连接蓝牙把它当做音箱来使用.它的许多功能都很 ...

  6. 手把手教你制作ESP8266物联网创意点阵时钟,女朋友看了都想要!

    本文作者:默 & 铁熊 前段时间我在网上看到了一款很有意思的点阵时钟,它可以播报天气,查看 YouTube 的订阅数,还有好看的时间动画.你可以把它当做普通闹钟,也可以连接蓝牙把它当做音箱来使 ...

  7. 看C++文档的小知识

    转载:http://www.ggv.com.cn/forum/clib/ctype/isspace.html 函数isspace 原型:extern int isspace(int c);     用 ...

  8. C++Primer第二章看完后记得的小知识

    引用与指针很类似,但本质上确实不同的两个东西.引用不是对象,只是一个对象的别名,因而引用必须初始化.指针属于对象,因而存在着指向指针的引用,而不存在指向引用的指针,即是指向了引用本质上而言是指向了引用 ...

  9. ES6和ES7及ES8新特性最新规范知识详细总结

    一.ECMASript 相关介绍 ECMA概述 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hWfWai55-1637595380774)(images/微信截图_2 ...

最新文章

  1. vue.js学习笔记(1)
  2. sap-生产订单的成本理解
  3. python网络编程-socket编程
  4. 谁今天收到鸿蒙系统推送,鸿蒙系统正式推送,只有部分高端机才能收到
  5. lodash 根据某个字段排序处理
  6. 2017前端大厂踩坑经验
  7. 鼎利软件测试终端刷机,世纪鼎利pioneer连接移动平台进行volte测试操作说明.doc...
  8. 编写一个算法来判断一个数 n 是不是快乐数
  9. 粒子场优化(Particle Field Optimization,PFO)
  10. 190507每日一句
  11. python规模_基于python的百度迁徙2——迁徙规模指数(附代码)
  12. PHP 登录注册附带邮箱手机号验证
  13. swf to html5 movie maker,楠妈妈教大家用windowsxp自带的Movie maker软件做视频
  14. Python经典面试题解析:实现斐波那契数列
  15. oracle加减乘除怎么写,加减乘除怎么写-加减乘除的名称怎么写-加减乘除的笔画怎么写...
  16. Swift 模式(Patterns)
  17. 明尼苏达量表结果分析_MMPI明尼苏达多项人格心理测试量表结果分析
  18. js练习题:对象字面量的形式创建一个名字为可可的狗对象
  19. Sublime Text:选择变量的所有实例并编辑变量名称
  20. 走近Harvest Moon:Moonbeam DeFi狂欢会

热门文章

  1. 如何使用客户端软件订阅RSS源2
  2. FBX格式mesh解析与加载(一)
  3. 【游】优秀游戏场景分析
  4. 德银天下再度冲刺港交所上市,股东提前“套现”了5个亿
  5. SolidWorks转.urdf格式机器人模型导入Matlab
  6. 关羽闯关的c语言编程,腾讯中国象棋残局264关怎么过 三国演义264关关羽降汉攻略...
  7. ncurses库的安装
  8. 模拟根据后端返回列表数据,先包装成树结构,包装路由数据格式。
  9. 做人工智能必看的45篇论文-附下载地址
  10. 【考研复试】某985考研复试英语面试问题汇总(综合面试+英语口语面试)