Set和Map都是ES6中较新的数据类型,特定情况下两者都可以使用。
例如,如果我想要存储所有唯一的元素,我可以使用Set,也可以使用值为true的Map。
const data: string[] ;
// console.log('data', data[0])
const set = new Set();
const map = new Map<string, boolean>();
data.forEach((item) => {
map.set(item, true);
});
data.forEach((item) => {
set.add(item);
});
两种方法都可以,但我想知道哪一种更快?
更新1
我正在寻找在存储数据时哪种数据结构更快。
使用以下方式检查值是否存在 -
map.has(<value>)
set.has(<value>)
- 删除数值
我知道true
是多余的,并没有用到,但是我只是想展示map和set可以互相替换。
重要的是速度。
Set
更适合恰当地传达意图。所以请使用它。如果它比Map
更慢或需要更多内存,那就是实现上的错误。 - Bergi