关于forEach的参数

关于forEach的参数

let a = new Set();
a.add(1).add(2).add(3);
console.log(a);
a.delete(2);
console.log(a);
console.log(a.size);
a.forEach(function (value, index) {
console.log('value = ' + value + '\n' + 'index = ' + index);
});

前面输出结果都正常,但当最后forEach输出index时结果为 ‘1,3’,而不是预期的‘0,1’。这里index是从1开始的而不是0,这是为什么?且为什么set中的‘2’被删掉后依然占用一个index位置?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,原因如下:

Set是一系列无序的、没有重复值的数据集合,虽然类似于数组,但Set没有下标去标示每一个值,也不能像数组那样通过下标去访问Set的成员,所以,通过forEach方法遍历该对象时,参数index不是有序的下标值,如图

https://img1.sycdn.imooc.com//climg/61b1c887091a980110460422.jpg

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师