在地图方法

时间:2015-11-06 17:37:48

标签: javascript arrays dictionary

我在一个函数中将两个数组相互比较,并希望在每个数组键处返回一个具有最高值的数组。在我的函数中,我有两个参数,它们都代表一个数组。

数组具有相同的长度,其键值为正常索引号

现在我只使用正常的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];
});

1 个答案:

答案 0 :(得分:2)

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

传递给the callback for map的第二个参数是关键。