JavaScript 集合和值对象

JavaScript sets and value objects

我想在 JavaScript 中创建一个 set of value objects。问题是在 JavaScript 中,平等是基于身份的。因此,具有相同值的两个不同对象将被视为不相等:

var objects = new Set;

objects.add({ a: 1 });
objects.add({ a: 1 });

alert(objects.size);   // expected 1, actual 2

你是如何解决这个问题的?

使用JSON.stringify:

var objects = new Set;

objects.add(JSON.stringify({ a: 1 }));
objects.add(JSON.stringify({ a: 1 }));

alert(objects.size);