为什么集合中的项在JavaScript中被称为value而不是key?
为什么集合中的项在JavaScript中被称为value而不是key?,javascript,ecmascript-6,Javascript,Ecmascript 6,Set.prototype.forEach在ES6中接受回调函数该函数有3个参数与Map.prototype.forEach一致。表示回调的前两个参数都是值,因为Set对象中没有键。为什么集合中的项目被视为值而不是键?Set对象中没有重复的键更有意义,因为Map中也没有重复的键 Set中的值看起来像Map中的键的另一个方面是,它使Set.prototype.has(值)和Map.prototype.has(键)更加一致。在数组(键是索引)和映射中不允许重复键,但这不能扩展到不允许重复值的集合。使
Set.prototype.forEach
在ES6中接受回调函数该函数有3个参数与Map.prototype.forEach
一致。表示回调的前两个参数都是值,因为Set
对象中没有键。为什么集合中的项目被视为值而不是键?Set
对象中没有重复的键更有意义,因为Map
中也没有重复的键
Set
中的值看起来像Map
中的键的另一个方面是,它使Set.prototype.has(值)
和Map.prototype.has(键)
更加一致。在数组
(键是索引)和映射
中不允许重复键,但这不能扩展到不允许重复值的集合
。使其成为所有容器中都不允许使用重复键可能是一个更简洁的规则。这只是因为集合的语义不同。集合存储值,而地图存储键和值
例如,摩托车和自行车都有两个轮子,但你仍然说有摩托车和自行车。仅仅因为集合值和映射键是唯一的并不意味着它们是相同的东西。这只是因为集合的语义不同。集合存储值,而地图存储键和值
例如,摩托车和自行车都有两个轮子,但你仍然说有摩托车和自行车。仅仅因为设置值和映射键是唯一的,并不意味着它们是相同的。来自您所附加的MDN链接
集合对象中没有关键点。然而,前两个论点是
这两个值都包含在集合中,因此回调函数
与映射和数组的forEach方法一致
我们可以说集合只是一个数组,它保留不同的元素。集合中没有键。来自您所连接的MDN链接
集合对象中没有关键点。然而,前两个论点是
这两个值都包含在集合中,因此回调函数
与映射和数组的forEach方法一致
我们可以说集合只是一个数组,它保留不同的元素。集合中没有键。AMap
对象有一个键和一个值,它们是独立的实体。集合
对象只有一个值,您可以使用该值将值添加到集合
中,并使用该值测试该值是否在集合
中。本质上,Set
是由值索引的,所以它有点像Set
是一个Map
,其中键和值是相同的。您上次的编辑让我想到了一个问题:问题是什么D@Matíasfidemrazier我的上一次编辑添加了一些证据,证明在Set
中将项调用为键而不是值可能更合适。因此,我的问题仍然是,为什么支架将Set
中的项称为值,而不是键。:)已经回答了两次:(一个Map
对象有一个键和一个值,它们是独立的实体。一个Set
对象只有一个值,你可以用它将值添加到Set
中,并用它来测试值是否在集中。本质上,Set
是由值索引的,所以它有点像Set
是映射de>其中键和值是相同的。您上次的编辑让我问了一个关于您自己的问题:问题是什么D@Mat我的上一次编辑添加了一些证据,证明将Set
中的项调用为键而不是值可能更合适。因此我的问题仍然是为什么该支架将Set
中的项调用为值,而不是键。:)已经回答了两次:(大多数集合都有一个底层数组存储;DWell,我们必须从以下内容开始:DWell大多数集合都有一个底层数组存储;DWell,我们必须从以下内容开始:D