“Sets类似于数组,而Maps类似于对象”,这句话的意思是什么?

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

3

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);


哦,谢谢你,现在我明白了很多,我觉得我对JS还很陌生(之前是从Java转过来的),这让我的“理解力”有些减缓。我刚才在控制台里试着操作了一下,现在我更清楚了 :) - Perdamaian
我本来想在控制台中添加相同的代码片段,但你已经包含了它们,谢谢! - Perdamaian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接