2017-01-31 3 views
0

Мне нужно передать индекс массива в качестве второго параметра Javascript .map():Как передать второй параметр карте Javascript

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

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

Как я могу итерацию по arr1 при применении .map() к arr2?

Спасибо!

+3

'arr2.map (функция (х, индекс) {' Вы можете получить индекс в качестве второго параметра. –

+1

Что вы делаете с неравной длиной? –

ответ

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]; }); 

Примечание оба массива должны иметь одинаковую длину.

0

Как указано в Mozilla documentation

The map() функция обеспечивает функцию обратного вызова, которая принимает три аргумента: currentValue, index, array

0

Вы не передать второй параметр в map, вы передать второй параметр в функцию, которую вы передаете в качестве первого (и единственного) параметра в map. Когда карта, в свою очередь, вызывает эту функцию, она будет вызывать ее с текущим элементом в качестве первого параметра, а индекс текущего элемента - вторым. (На карте фактически используется третий аргумент, который является повторением всего массива).

Так что если у вас есть такой код:

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

Вы получите

25 0 
50 1 
75 2 
90 3 
Смежные вопросы