JavaScript 如何对Map进行排序

JavaScript 如何对Map进行排序

在本文中,我们将看到如何根据键的值对Map进行排序。

JavaScript中的Map 是一种特殊类型的对象,按照[key, value]对存储元素。Map可以存储原始类型和对象。在遍历map对象时,它按照插入的顺序返回[key, value]对。

以下是几种方法:

  • 使用Map.entries()和sort()方法
  • 使用Array.from()和sort()方法

方法1:使用Map.entries()和sort()方法

实现这个目标的一种方法是使用JavaScript中的内置 sort() 函数,该函数在由Map.entries()方法生成的对象的数组解构的多维数组上可用。

语法:

[...map1.entries()]   
# this will generate a multi-dimensional array   
# out of the key-value pairs stored in the map  

现在我们将使用 sort 函数按照默认方式将这个数组按升序排列,它将根据数组中第一个元素的递增值来排序数组。

[...map1.entries()].sort()  

示例1: 在这个示例中,我们按键值递增的顺序对地图进行排序。

Javascript

// Initializing and inserting values into Map
let map1 = new Map([
    [4, 2],
    [2, 3],
]);
 
// Inserting new element into map using set() method
map1.set(3, 10);
console.log("Our map :");
console.log(map1);
 
// Adding the sorting logic
map1 = new Map([...map1.entries()].sort());
 
// Separately printing only keys
for (let [key, value] of map1) {
    console.log(key, " ");
}

输出

Our map :
Map(3) { 4 => 2, 2 => 3, 3 => 10 }
2  
3  
4  

示例2: 在此示例中,我们按键的降序排序地图。

JavaScript

let map1 = new Map([
    [4, 2],
    [2, 3],
]);
 
// Inserting new element into map using set() method
map1.set(3, 10);
console.log("Our map :");
console.log(map1);
 
// Adding the custom sorting logic to sort
// by decreasing values of keys
map1 = new Map([...map1.entries()].sort((a, b) => b[0] - a[0]));
 
// Separately printing only keys
for (let [key, value] of map1) {
    console.log(key, " ");
}

输出

Our map :
Map(3) { 4 => 2, 2 => 3, 3 => 10 }
4  
3  
2  

方法2:使用Array.from()和sort()方法

在这个方法中,我们将使用Array.from()将map转换为数组,然后使用sort()函数对map进行排序。在这个方法中,我们将按照值对map进行排序。

示例:

Javascript

let map1 = new Map([
    [4, 2],
    [2, 3],
]);
 
// Inserting new element into map using set() method
map1.set(3, 10);
console.log(map1);
 
// Adding the custom sorting logic to sort
// by decreasing values of keys
const newMap = Array.from(map1).sort((a, b) => a[1] - b[1]);
 
const sortedMap = new Map(newMap);
console.log(sortedMap);

输出

Map(3) { 4 => 2, 2 => 3, 3 => 10 }
Map(3) { 4 => 2, 2 => 3, 3 => 10 }

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程