如何将第二个参数传递给Javascript地图

时间:2017-01-31 13:14:07

标签: javascript

我需要将数组索引作为第二个参数传递给Javascript .map():

var arr1 = [25,50,75,90]
var arr2 = [1,2,3,4,5]

arr2.map(function(x){
  console.log( arr1[index] * x );
});

如何在将.map()应用于arr2?

时迭代arr1

谢谢!

3 个答案:

答案 0 :(得分:0)

如果您需要的是这样的数组:

var arr3 = [25 * 1, 50 * 2, 75 * 3, 90 * 4, 100 * 5];

您可以使用以下内容:

var arr1 = [25,50,75,90,100];
var arr2 = [1,2,3,4,5];
var arr3 = arr2.map(function(x, idx){ return x * arr1[idx]; });

请注意,两个数组的长度应相同。

答案 1 :(得分:0)

Mozilla documentation

中所述

map()函数提供了一个回调,它有三个参数:currentValueindexarray

答案 2 :(得分:0)

您没有将第二个参数传递给map,您将第二个参数传递给作为第一个(也是唯一的)参数传递给map的函数。当map反过来调用该函数时,它将使用当前元素作为第一个参数调用它,并将当前元素的索引作为第二个参数调用。 (Map实际上也使用了第三个参数,即迭代的整个数组。)

所以如果您有以下代码:

arr2.map(function(item, index){
  console.log( item, index );
});

你会得到

25 0  
50 1  
75 2  
90 3