我想在JavaScript中创建set value objects。问题是在JavaScript中,相等性是基于身份的。因此,具有相同值的两个不同对象将被视为不相等:
var objects = new Set;
objects.add({ a: 1 });
objects.add({ a: 1 });
alert(objects.size); // expected 1, actual 2
你如何解决这个问题?
答案 0 :(得分:3)
使用JSON.stringify
:
var objects = new Set;
objects.add(JSON.stringify({ a: 1 }));
objects.add(JSON.stringify({ a: 1 }));
alert(objects.size);