Javascript 将map()与具有两个参数的函数一起使用
我知道我可以将这样的函数传递给数组方法Javascript 将map()与具有两个参数的函数一起使用,javascript,function,Javascript,Function,我知道我可以将这样的函数传递给数组方法.map(): 我正在向map中的匿名函数传递一个参数(x),其中x逐步分配给城市的每个元素 在下面的代码中,已将两个参数(d和i)传递给匿名函数 function numberRange (start, end) { return new Array(end - start).fill().map((d, i) => i + start); } numberRange(10, 20) // OUTPUT [10, 11, 12, 13, 14
.map()
:
我正在向map
中的匿名函数传递一个参数(x
),其中x
逐步分配给城市的每个元素
在下面的代码中,已将两个参数(d
和i
)传递给匿名函数
function numberRange (start, end) {
return new Array(end - start).fill().map((d, i) => i + start);
}
numberRange(10, 20)
// OUTPUT [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
匿名函数中的参数d
和i
是什么?它们是如何分配的?多参数函数如何与.map()
一起工作?如您所见,使用三个参数调用数组#map
:
- 当前值
- 当前索引
- 调用它的对象
因此,调用map
时会使用数组中的每个值及其索引(以及数组,但它不会为其声明参数)
旁注:您可以避免不必要的多次通过数组(基本上,将填充
和映射
)与数组相结合。从
:
return Array.from({length: end - start}, (d, i) => i + start);
使用当前值及其索引调用其回调
例如:
函数编号排列(开始、结束){
返回数组.from({length:end-start},(d,i)=>i+start);
}
控制台日志(numberRange(10,20))
在第二个参数旁边,通常是forEach
的实际元素的索引,一些
,每个
,映射
,您可以使用该参数,它从具有长度属性的对象生成数组,并具有映射函数的第二个参数
function numberRange (start, end) {
return new Array(end - start).fill().map((d, i) => i + start);
}
numberRange(10, 20)
// OUTPUT [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
函数编号排列(开始、结束){
返回Array.from({length:end-start},({,i)=>i+start);
}
控制台日志(numberRange(10,20))代码>第二个参数是索引,而第一个参数是元素请在发布之前做一些研究。至于回调参数“来自”哪里以及它们是如何分配的:请看。@Xufox是的,谢谢。我的错。我在医生里没注意到。需要一些休息:)不知道array.from,看起来是一种更干净的方法来实现相同的结果。谢谢。我不知道数组。从。一如既往地谢谢你,尼娜。