我使用随机生成器创建一对数字,需要弄清楚数字对是否早先发生过。我想过使用Set()但它似乎不起作用。
var a = [1, 2]
var s = new Set();
s.add(a) //Set {[1, 2]}
s.add([1, 2]) //Set {[1, 2], [1, 2]}
我怀疑这是因为JS存储引用而不是值。有没有办法只存储一次该数组/对,并根据值返回TRUE?
答案 0 :(得分:0)
JavaScript检查与===
的相等性。缺点是比较对象/数组/函数通常不那么简单。
如果格式一致,您可以使用一些丑陋的黑客:JSON.stringify()
您的数组,并将字符串添加到Set。与具有不同引用的数组不同,字符串将被视为相等。