JS Map对象如何根据值倒序和顺序排序?
sort() 方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的
由于它取决于具体实现,因此无法保证排序的时间和空间复杂性
语法
arr.sort([compareFunction])
一、按顺序排:
定义以下map
var map = new Map();
map.set("google", "8");
map.set("yahoo", "5");
map.set("msn", "2");
map.set("stackoverflow", "7");
map.set("github", "3");
map.set("amazon", "6");
map.set("ebay", "9");
想根据value从小到大排序,首先map转换为数组对象
得到的 arrObj 中索引0为key,索引1为value,然后采用数组的排序方法
var arrObj = Array.from(map);
var result = arrObj.sort(function (low, hig) { return low[1] - hig[1] })
输出:
['msn', '2']
['github', '3']
['yahoo', '5']
['amazon', '6']
['stackoverflow', '7']
['google', '8']
['ebay', '9']
二、按倒序排:
var result = arrObj.sort(function (low, hig) { return hig[1] - low[1] })
输出:
['ebay', '9']
['google', '8']
['stackoverflow', '7']
['amazon', '6']
['yahoo', '5']
['github', '3']
['msn', '2']