关于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位置?
12
收起
正在回答
1回答
同学你好,原因如下:
Set是一系列无序的、没有重复值的数据集合,虽然类似于数组,但Set没有下标去标示每一个值,也不能像数组那样通过下标去访问Set的成员,所以,通过forEach方法遍历该对象时,参数index不是有序的下标值,如图
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星