当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Javascript Map转Set用法及代码示例


Map JavaScript 中的数据结构是一种特殊的数据结构,仅保存唯一的数据。其中不会存储重复的数据。 Map 以键值对的形式存储数据,而 Set 仅以值的形式存储。在某些场景下,您需要将Map转换为Set,此时您可以使用以下方法进行转换。

将 Map 键转换为 Set

您可以创建一个其中包含的键Map作为值使用Object keys() Map 上的方法来获取其键并将它们存储为 Set 的值。

用法:

mapName.keys();

例子:下面的代码解释了keys()方法将Map的键转换为Set的实际用途。

Javascript


const dummyMap = new Map();
dummyMap.set('type1', 'Company');
dummyMap.set('name1', 'GeeksforGeeks');
dummyMap.set('type2', 'Cricketer');
dummyMap.set('name2', 'Virat Kohli');
console.log("Initial Map: ", dummyMap);
const createdSet = new Set(dummyMap.keys());
console.log("Created Keys Set: ", createdSet);
输出
Initial Map:  Map(4) {
  'type1' => 'Company',
  'name1' => 'GeeksforGeeks',
  'type2' => 'Cricketer',
  'name2' => 'Virat Kohli'
}
Created Keys Set:  Set(4) { 'type1', 'name1', 'type2', 'name2' }


将 Map 值转换为 Set

Object values() 方法可以与 Map 一起使用来获取其值并将它们作为其值存储到 Set 中。此方法会将 Map 值转换为 Set。

用法:

mapName.values();

例子:下面的代码实现了values()方法使用 Map 将其值转换为 Set 值。

Javascript


const dummyMap = new Map();
dummyMap.set('type1', 'Company');
dummyMap.set('name1', 'GeeksforGeeks');
dummyMap.set('type2', 'Cricketer');
dummyMap.set('name2', 'Virat Kohli');
console.log("Initial Map: ", dummyMap);
const createdSet = new Set(dummyMap.values());
console.log("Created Values Set: ", createdSet);
输出
Initial Map:  Map(4) {
  'type1' => 'Company',
  'name1' => 'GeeksforGeeks',
  'type2' => 'Cricketer',
  'name2' => 'Virat Kohli'
}
Created Values Set:  Set(4) { 'Company', 'GeeksforGeeks', 'Cricketer...

将映射的键和值转换为集合

还可以使用以下命令创建包含 Map 的键和值作为值的 SetObject entries() 方法获取 Map 键和值并将它们存储到 Set 中。

用法:

mapName.entries();

例子:下面的代码是将Map转换为Set的entries()方法的实际实现。

Javascript


const dummyMap = new Map();
dummyMap.set('name1', 'GeeksforGeeks');
dummyMap.set('name2', 'Virat Kohli');
console.log("Initial Map: ", dummyMap);
const createdSet = new Set(dummyMap.entries());
console.log
("Created Set of Keys and Values: \n", createdSet);
输出
Initial Map:  Map(2) { 'name1' => 'GeeksforGeeks', 'name2' => 'Virat Kohli' }
Created Set of Keys and Values: 
 Set(2) { [ 'name1', 'GeeksforGeeks' ], [ 'name2', 'Virat Kohli' ] }

使用扩展运算符语法

扩展运算符可用于解构 Map 的键和值对,然后将其作为值存储到 Set 中。

用法:

[...mapName];

例子:下面的代码使用展开运算符将 Map 转换为 Set。

Javascript


const dummyMap = new Map();
dummyMap.set('name1', 'GeeksforGeeks');
dummyMap.set('name2', 'Virat Kohli');
console.log("Initial Map: ", dummyMap);
const createdSet = new Set([...dummyMap]);
console.log("Created Set: ", createdSet);
输出
Initial Map:  Map(2) { 'name1' => 'GeeksforGeeks', 'name2' => 'Virat Kohli' }
Created Set:  Set(2) { [ 'name1', 'GeeksforGeeks' ], [ 'name2', 'Virat Kohli' ] }

使用Array.from()方法

Array from()方法还可以通过将 Map 作为参数传递给它来将 Map 转换为 Set。

用法:

Array.from(mapName);

例子:下面的代码实现了 Array.from() 方法将 Map 转换为 Set。

Javascript


const dummyMap = new Map();
dummyMap.set('name1', 'GeeksforGeeks');
dummyMap.set('name2', 'Virat Kohli');
console.log("Initial Map: ", dummyMap);
const createdSet = 
new Set(Array.from(dummyMap));
console.log("Created Set: ", createdSet);
输出
Initial Map:  Map(2) { 'name1' => 'GeeksforGeeks', 'name2' => 'Virat Kohli' }
Created Set:  Set(2) { [ 'name1', 'GeeksforGeeks' ], [ 'name2', 'Virat Kohli' ] }



相关用法


注:本文由纯净天空筛选整理自abhish8rzd大神的英文原创作品 How to convert a Map into a Set in JavaScript?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。