如何在JavaScript Set上运行map函数?

4

Javascript有一个Array.prototype.map,但没有set的等效函数。在Javascript中运行map的推荐方法是什么?

编辑:按要求添加一个示例

users = new Set([1,2,3])

// throws an error: 
// Uncaugh TypeError: users.map is not a function
users.map(n => n*n)

1
请将以下与编程相关的内容从英文翻译成中文。仅返回翻译后的文本:请添加一个示例以突出您的问题。 - Nina Scholz
请参见https://dev59.com/hF0Z5IYBdhLWcg3wxCqQ或http://stackoverflow.com/q/31232415/1048572,这些与编程有关的内容。 - Bergi
你想用计算结果做什么?创建一个新数组,一个新的 Set,还是一个新的 Map - Nina Scholz
1个回答

4
你可以使用展开运算符, 在Set上进行映射,像这样。

展开语法允许在需要多个参数(用于函数调用),多个元素(用于数组字面量)或多个变量(用于解构赋值)的地方扩展表达式。

如此简单地对Set进行映射。

const s = new Set([1,2,3,4]);

const a = [...s].map( n => n * 2 )

console.log(a)


你应该将你的映射表达式包装在一个 Set 构造函数中,因为映射一个 Set 应该返回一个 Set。但是问题在于重复的返回值:new Set(Array.from(s).map(n => n % 2)) 会产生 Set {1, 0} - 但是映射不应该改变 Set 的结构。 - user6445533

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接