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


Javascript Set转Map用法及代码示例


A 是独特值的集合。它仅以值的形式存储数据,而Map可以以键值对的形式存储数据。

以下是在 JavaScript 中将 Set 转换为 Map 的不同方法:

使用Array.from()方法

Array from()方法可用于将 Set 转换为 Map,方法是传递 Map 和回调函数以将 Map 的键和值设置为该方法的参数。

用法:

Array.from(setName, ()=>{});

例子:下面的代码示例使用 Array.from() 方法将 Set 转换为 Map。

Javascript


const dummySet = new Set();
dummySet.add('GeeksforGeeks');
dummySet.add('Virat Kohli');
console.log("Initial Set: ", dummySet);
const createdMap = new Map(Array.from
(dummySet, value => [value.length, value]));
console.log("Created Map: ", createdMap);
输出
Initial Set:  Set(2) { 'GeeksforGeeks', 'Virat Kohli' }
Created Map:  Map(2) { 13 => 'GeeksforGeeks', 11 => 'Virat Kohli' }

将 Spread 运算符与 map() 方法结合使用

扩展运算符用于传播Set的数据和Array map()将用于迭代它们以将它们存储在空 Map 中。

用法:

[...setName].map(()=>{});

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

Javascript


const dummySet = new Set();
dummySet.add('GeeksforGeeks');
dummySet.add('Virat Kohli');
console.log("Initial Set: ", dummySet);
const createdMap = new Map([...dummySet].
map((item)=>[item.length, item]));
console.log("Created Map: ", createdMap);
输出
Initial Set:  Set(2) { 'GeeksforGeeks', 'Virat Kohli' }
Created Map:  Map(2) { 13 => 'GeeksforGeeks', 11 => 'Virat Kohli' }

使用reduce()方法

JavaScriptArray reduce()当与扩展运算符一起使用时,可用于将 Set 转换为 Map。

用法:

[...setName].reduce(()=>{});

例子:下面的代码显示了 reduce() 方法将 Set 转换为 Map 的实际实现。

Javascript


const dummySet = new Set();
dummySet.add('GeeksforGeeks');
dummySet.add('Virat Kohli');
console.log("Initial Set: ", dummySet);
const createdMap = [...dummySet].
reduce((map, item)=> 
map.set(item.length, item), new Map());
console.log("Created Map: ", createdMap);
输出
Initial Set:  Set(2) { 'GeeksforGeeks', 'Virat Kohli' }
Created Map:  Map(2) { 13 => 'GeeksforGeeks', 11 => 'Virat Kohli' }

使用forEach()方法

Array forEach()方法可以迭代Set中的每个元素,将它们一一设置为Map的键值对。

用法:

setName.forEach(()=>{});

例子:下面的代码可用于使用 forEach() 方法将 Set 转换为 Map。

Javascript


const dummySet = new Set();
dummySet.add('GeeksforGeeks');
dummySet.add('Virat Kohli');
console.log("Initial Set: ", dummySet);
const createdMap = new Map();
dummySet.forEach((item) => 
createdMap.set(item.length, item));
console.log("Created Map: ", createdMap);
输出
Initial Set:  Set(2) { 'GeeksforGeeks', 'Virat Kohli' }
Created Map:  Map(2) { 13 => 'GeeksforGeeks', 11 => 'Virat Kohli' }

使用 for of 循环

for 循环可以用来一一获取Set的项,然后使用以下方法将它们设置为Map的键值对Map set().

用法:

for(const itemName of setName){}

例子:下面的代码实现了 for of 循环,以在 JavaScript 中将 Set 转换为 Map。

Javascript


const dummySet = new Set();
dummySet.add('GeeksforGeeks');
dummySet.add('Virat Kohli');
console.log("Initial Set: ", dummySet);
const createdMap = new Map();
for(const item of dummySet){
    createdMap.set(item.length, item);
}
console.log("Created Map: ", createdMap);
输出
Initial Set:  Set(2) { 'GeeksforGeeks', 'Virat Kohli' }
Created Map:  Map(2) { 13 => 'GeeksforGeeks', 11 => 'Virat Kohli' }



相关用法


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