我正在学习ES6,偶然发现了this video中的这句话:'你可以说,集合是阵列,因为地图是对象'。
这个短语是什么意思 ?为什么Set更多地链接到数组而不是map? (反之亦然)。
我知道这是一个非常具体的问题,但是自从我听到这句话后,我的头脑真的转过来了!
提前谢谢你,我是SO的新人,所以任何评论都表示赞赏。
Set
是值的集合,就像数组是值的集合(没有涉及的密钥,除了.length
/ .size
)
Map
是键值对的集合,就像对象是键值对的集合一样。 (虽然Map
的键可以是任何东西,而不仅仅是字符串)
当然,还有很多不同之处,但价值观和键值对之间的区别与您提出的问题最为相关。
Map
和对象示例:
const key = 'key';
const value = 'value';
const map = new Map();
const obj = {};
map.set(key, value);
obj[key] = value;
Set
和数组示例:
const value = 'value';
const set = new Set();
const arr = [];
set.add(value);
arr.push(value);