繁体   English   中英

如何构建一套独特的 Arrays?

[英]How to build a Set of unique Arrays?

我想将许多 arrays 添加到 Javascript 集合中,并确保仅将唯一的 arrays 添加到集合中。 但是,当我尝试多次添加相同的数组时,它总是被添加而不是被拒绝。 .has() 方法也总是返回 false。 我该如何解决?

const mySet = new Set();
mySet.add([1, 2, 3]);
mySet.add([4, 5]);
mySet.add([1, 2, 3]);

console.log(mySet);                 
// Gives:  Set(3) { [ 1, 2, 3 ], [ 4, 5 ], [ 1, 2, 3 ] } 
// I want: Set(2) { [ 1, 2, 3 ], [ 4, 5 ] }

console.log(mySet.has([1, 2, 3]));  
// Gives:  false
// I want: true

我会使用 Map 代替,由数组的字符串化版本索引:

 const map = new Map(); const addToMap = arr => map.set(JSON.stringify(arr), arr); addToMap([1, 2, 3]); addToMap([4, 5]); addToMap([1, 2, 3]); console.log([...map.values()]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM