2015-11-06 2 views
0

Я сравниваю два массива друг с другом в функции и хочу вернуть массив с наивысшими значениями для каждого ключа массива. В моей функции у меня есть два параметра, которые представляют собой массив.Получить ключ массива в методе карты

Массивы имеют одинаковую длину и их ключевые значения являются нормальными индексных

Теперь я просто использовать обычный цикл:

var array1 = [50, 30, 44, 8]; 
var array2 = [12, 44, 18, 9]; 

function createList(arr1, arr2){ 
    for(var x = 0; x < arr1.length; x++){ 
     arr1[x] = arr1[x] > arr2[x]?arr1[x]:arr2[x]; 
    } 
    return arr1; 
} 

var highList = createList(array1, array2); 

Теперь я знаю, есть и другие Каковы возможности на получение этого результата. Но мне было интересно, можно ли получить текущий ключ в методе карты и использовать его для сравнения с другим массивом.

Что-то в строке:

var highList = array1.map(function(num){ 
    return num > array2[keyOfCurrentMap]?num:array2[keyofCurrentMap]; 
}); 

ответ

2
var highList = array1.map(function(num, keyOfCurrentMap){ 
    return num > array2[keyOfCurrentMap]?num:array2[keyofCurrentMap]; 
}); 

Вторые пары передаются в the callback for map ключе.

+0

Работает как очарование, спасибо, что освободил это для меня. – Bigalow

+0

Cool, @Bigalow Примите сторону в ответе, так что вопрос указан как разрешенный –

+1

Done! Мне пришлось ждать 15 минут, чтобы пройти после того, как я отправил свой вопрос, прежде чем смог принять его. Еще раз спасибо. – Bigalow

Смежные вопросы