关于forEach的参数

来源:2-5 编程练习

xEasonWang

2021-12-09 16:51:22

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回答

好帮手慕然然

2021-12-09

同学你好,原因如下:

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

https://img.mukewang.com/climg/61b1c887091a980110460422.jpg

祝学习愉快!

0

前端工程师

前端入门如同写字,如果你不知道从哪开始,那就选择前端(含Vue3.x,React17,TS)

20327 学习 · 17877 问题

查看课程