我在一个函数中将两个数组相互比较,并希望在每个数组键处返回一个具有最高值的数组。在我的函数中,我有两个参数,它们都代表一个数组。
数组具有相同的长度,其键值为正常索引号
现在我只使用正常的for循环:
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);
现在我知道获得这个结果还有其他可能性。但是我想知道你是否可以在map方法中获取当前键并使用它来与另一个数组进行比较。
以下内容:
var highList = array1.map(function(num){
return num > array2[keyOfCurrentMap]?num:array2[keyofCurrentMap];
});
答案 0 :(得分:2)
var highList = array1.map(function(num, keyOfCurrentMap){
return num > array2[keyOfCurrentMap]?num:array2[keyofCurrentMap];
});
传递给the callback for map
的第二个参数是关键。