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,看起来是一种更干净的方法来实现相同的结果。谢谢。我不知道数组。从。一如既往地谢谢你,尼娜。