我正在学习ES6,偶然在这个视频中看到这句话:“可以说Set是对于Array而言就像Map对于Object一样”。这句话的意思是什么?为什么Set更与数组相关而Map更与对象相关(反之亦然)?
我知道这是一个非常具体的问题,但自从听到这句话以来,我的头脑一直在转动!
提前感谢您,我是SO的新手,所以任何评论都会得到赞赏。
我知道这是一个非常具体的问题,但自从听到这句话以来,我的头脑一直在转动!
提前感谢您,我是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);