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' ] }
相关用法
- Javascript Map.clear( )用法及代码示例
- Javascript Map.delete()用法及代码示例
- Javascript Map.entries( )用法及代码示例
- Javascript Map.get( )用法及代码示例
- Javascript Map.has( )用法及代码示例
- Javascript Map和WeakMap的区别用法及代码示例
- Javascript Math.abs( )用法及代码示例
- Javascript Math.acosh()用法及代码示例
- Javascript Math.asinh()用法及代码示例
- Javascript Math.atan2( )用法及代码示例
- Javascript Math.atanh()用法及代码示例
- Javascript Math.cbrt()用法及代码示例
- Javascript Math.ceil( )用法及代码示例
- Javascript Math.clz32()用法及代码示例
- Javascript Math.cosh()用法及代码示例
- Javascript Math.E()用法及代码示例
- Javascript Math.expm1()用法及代码示例
- Javascript Math.floor()用法及代码示例
- Javascript Math.fround( )用法及代码示例
- Javascript Math.hypot( )用法及代码示例
- Javascript Math.imul( )用法及代码示例
- Javascript Math.log10()用法及代码示例
- Javascript Math.LOG10E用法及代码示例
- Javascript Math.log1p()用法及代码示例
注:本文由纯净天空筛选整理自abhish8rzd大神的英文原创作品 How to convert a Map into a Set in JavaScript?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。