【发布时间】:2021-03-03 00:58:45
【问题描述】:
问题是,Array(5) 和 [...Array(5)] 之间有什么区别见下文变量 c 和 d 是相同的,但 .map 对待它的方式不同。
let a = [...Array(5)].map((k,i)=>{
console.log("Hello");
return i;
})
console.log(a);
let b = Array(5).map((k,i)=>{
console.log("Hello");
return i;
})
console.log(b);
let c = Array(5)
let d = [...Array(5)]
console.log(c) // c and d seem to be the same
console.log(d)
【问题讨论】:
-
用
Array(5)上的地图解释你的意思 -
Array(5)返回一个初始容量为 5 个元素的数组,所有元素均为空。[...Array(5)]返回一个包含 5 个未定义元素的数组。map跳过空元素。 -
您的链接问题中接受的答案实际上不是真的,地图不会跳过
undefined,这个sn-p 工作得很好:[undefined].map(() => {console.log('ayo')})。它在这种情况下特别不运行,因为它是空插槽,这与undefined不同。请看下面我的回答。 @HereticMonkey -
希望这个问题得到澄清。我假设这对于全职 javascript 开发人员来说很容易。 @Vitim.us
标签: javascript arrays