如何在不改变集合的情况下添加到集合中?

How to add to a set without mutating it?

我想在 Set 中添加一个项目而不改变原始集。我尝试使用 add() 但这改变了原来的:

var s = new Set();
var s1 = s.add('foo');
console.log('s has foo:', s.has('foo'));
console.log('s1 has foo:', s1.has('foo'));

如何在不改变原始集合的情况下通过添加项目来创建新集合?

您可以从原始集合创建新集合,然后将项目添加到新集合:

var s = new Set();
var s1 = new Set(s);
s1.add('foo');
console.log('s has foo:', s.has('foo'));
console.log('s1 has foo:', s1.has('foo'));