请问Array(5)生成的是数组还是伪数组
来源:2-8 Array.from(如何将伪数组转换成数组?)

samudaodan
2019-12-23
老师好,您在其他同学的答复中提及伪数组不能使用forEach方法遍历,那么,Array(5)生成的是不是数组呢?如果是数组的话,为什么forEach不能将它的元素改变?
代码如下:
let array = Array(5)
array.forEach((val, id, arr) => {
arr[id] = 1
})
//浏览器运行结果:[ ,,,,,]
但是,这段代码:
let array = [1, 2, 3, 4, 5]
array.forEach((val, id, arr) => {
arr[id] = 1
})
//浏览器运行结果:[1, 1, 1, 1, 1]
若同为数组,为何两个结果相去甚远?
谢谢。
写回答
2回答
-
supoxiao
2020-02-19
let array = Array(5) 创建的是一个稀疏数组,对于稀疏数组forEach方法不会调用传入的第一个参数(函数)
00 -
快乐动起来呀
2019-12-23
你打印下第一个array的vak,id
022019-12-26
相似问题