Javascript 为什么`新数组(5).map((x,y)=>;y*2)`没有';不行?而`新数组(5).fill(1).map((x,y)=>;y*2)`工作吗?
我试图创建一个数组,它是[1,2,3,…,n],所以我使用了codeJavascript 为什么`新数组(5).map((x,y)=>;y*2)`没有';不行?而`新数组(5).fill(1).map((x,y)=>;y*2)`工作吗?,javascript,Javascript,我试图创建一个数组,它是[1,2,3,…,n],所以我使用了codenewarray(10).map((value,index)=>index+1),但是我得到了[empty×5] 同时,新数组(10).填充(1).映射((值,索引)=>index+1),为什么 Array.prototype.map()是如何工作的 我的代码: /[空×10] 新数组(10).map((值,索引)=>index+1) // [1,2,...,10] 新数组(10).fill(1).map((值,索引)=>ind
newarray(10).map((value,index)=>index+1)
,但是我得到了[empty×5]
同时,新数组(10).填充(1).映射((值,索引)=>index+1)
,为什么
Array.prototype.map()是如何工作的
我的代码:
/[空×10]
新数组(10).map((值,索引)=>index+1)
// [1,2,...,10]
新数组(10).fill(1).map((值,索引)=>index+1)
根据:
map按顺序为数组中的每个元素调用一次提供的回调函数,并根据结果构造一个新数组回调仅对具有赋值(包括未定义)的数组索引调用对于数组中缺少的元素(即,从未设置、已删除或从未赋值的索引),不会调用它。
在第一种情况下,您只是创建一个特定长度的数组,没有设置任何值,因此它不会调用map回调。在第二种方法中,您使用
Array#fill
方法将所有值设置为1
,因此它将调用回调,因为该值已分配给所有索引
可以将方法与映射回调一起用于生成数组
const arr=Array.from({length:10},(u,i)=>i+1)
控制台日志(arr)
根据:
map按顺序为数组中的每个元素调用一次提供的回调函数,并根据结果构造一个新数组回调仅对具有赋值(包括未定义)的数组索引调用对于数组中缺少的元素(即,从未设置、已删除或从未赋值的索引),不会调用它。
在第一种情况下,您只是创建一个特定长度的数组,没有设置任何值,因此它不会调用map回调。在第二种方法中,您使用
Array#fill
方法将所有值设置为1
,因此它将调用回调,因为该值已分配给所有索引
可以将方法与映射回调一起用于生成数组
const arr=Array.from({length:10},(u,i)=>i+1)
console.log(arr)
map仅在分配的索引上运行您可以使用以下内容:[…数组(10)].map((u,i)=>i+1)代码>映射仅在指定的索引上运行您可以使用此:[…数组(10)].map((u,i)=>i+1)代码>