ES6:连女朋友看了都喜欢的小知识-如何排序一个Map对象
大家好,我是林三心,众所周知(不要问我谁是“众所”),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对象相关推荐
- 多暂估的库存如何调整_会计们看过来 暂估存货小知识
原标题:会计们看过来 暂估存货小知识 按照相应会计政策和制度规定,企业在作外购入库核算时,必须基于材料已经验收入库.材料货款已经结算,要有外购发票.外购入库单等相关单据票据. 现在很多企业在生产经营过 ...
- ES6最通俗易懂的超重点保姆级笔记!女朋友看了都流泪的学习秘籍!没有一句废话,全部都是满满干货!
1. ES6 1.1 let和const命令 1.1.1 let 特性 变量不能重复声明 let star='罗志祥'; let star='小猪' //error let有块级作用域 {let gi ...
- JVM-内存与垃圾回收篇!女朋友看了都想当架构师的超详细保姆级笔记!呕心沥血之作!看完还不会你砍我!
1. JVM与Java体系结构 1.1 Java虚拟机 Java虚拟机是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成. JVM平台的各种 ...
- 值得程序员一看的 8 个冷门小知识
想要成为一名成功的程序员,我们除了了解不同编程语言的设计思路,也应当了解编程的发展历史,从而判断未来的编程技术将走向何方.接下就为大家普及下计算机发展历程中的8个冷门小知识! 1.第一台电脑为蒸汽驱动 ...
- 云摆摊 | 手把手教你制作ESP8266物联网创意点阵时钟,女朋友看了都想要!
前段时间我(作者:默)在网上看到了一款很有意思的点阵时钟,它可以播报天气,查看 YouTube 的订阅数,还有好看的时间动画.你可以把它当做普通闹钟,也可以连接蓝牙把它当做音箱来使用.它的许多功能都很 ...
- 手把手教你制作ESP8266物联网创意点阵时钟,女朋友看了都想要!
本文作者:默 & 铁熊 前段时间我在网上看到了一款很有意思的点阵时钟,它可以播报天气,查看 YouTube 的订阅数,还有好看的时间动画.你可以把它当做普通闹钟,也可以连接蓝牙把它当做音箱来使 ...
- 看C++文档的小知识
转载:http://www.ggv.com.cn/forum/clib/ctype/isspace.html 函数isspace 原型:extern int isspace(int c); 用 ...
- C++Primer第二章看完后记得的小知识
引用与指针很类似,但本质上确实不同的两个东西.引用不是对象,只是一个对象的别名,因而引用必须初始化.指针属于对象,因而存在着指向指针的引用,而不存在指向引用的指针,即是指向了引用本质上而言是指向了引用 ...
- ES6和ES7及ES8新特性最新规范知识详细总结
一.ECMASript 相关介绍 ECMA概述 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hWfWai55-1637595380774)(images/微信截图_2 ...
最新文章
- vue.js学习笔记(1)
- sap-生产订单的成本理解
- python网络编程-socket编程
- 谁今天收到鸿蒙系统推送,鸿蒙系统正式推送,只有部分高端机才能收到
- lodash 根据某个字段排序处理
- 2017前端大厂踩坑经验
- 鼎利软件测试终端刷机,世纪鼎利pioneer连接移动平台进行volte测试操作说明.doc...
- 编写一个算法来判断一个数 n 是不是快乐数
- 粒子场优化(Particle Field Optimization,PFO)
- 190507每日一句
- python规模_基于python的百度迁徙2——迁徙规模指数(附代码)
- PHP 登录注册附带邮箱手机号验证
- swf to html5 movie maker,楠妈妈教大家用windowsxp自带的Movie maker软件做视频
- Python经典面试题解析:实现斐波那契数列
- oracle加减乘除怎么写,加减乘除怎么写-加减乘除的名称怎么写-加减乘除的笔画怎么写...
- Swift 模式(Patterns)
- 明尼苏达量表结果分析_MMPI明尼苏达多项人格心理测试量表结果分析
- js练习题:对象字面量的形式创建一个名字为可可的狗对象
- Sublime Text:选择变量的所有实例并编辑变量名称
- 走近Harvest Moon:Moonbeam DeFi狂欢会
热门文章
- 如何使用客户端软件订阅RSS源2
- FBX格式mesh解析与加载(一)
- 【游】优秀游戏场景分析
- 德银天下再度冲刺港交所上市,股东提前“套现”了5个亿
- SolidWorks转.urdf格式机器人模型导入Matlab
- 关羽闯关的c语言编程,腾讯中国象棋残局264关怎么过 三国演义264关关羽降汉攻略...
- ncurses库的安装
- 模拟根据后端返回列表数据,先包装成树结构,包装路由数据格式。
- 做人工智能必看的45篇论文-附下载地址
- 【考研复试】某985考研复试英语面试问题汇总(综合面试+英语口语面试)