在map方法中获取数组键

Get array key in map method

本文关键字:数组 获取 map 方法      更新时间:2023-09-26

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

数组具有相同的长度,它们的键值是正常的索引号

现在我只使用一个普通的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];
});
var highList = array1.map(function(num, keyOfCurrentMap){
    return num > array2[keyOfCurrentMap]?num:array2[keyofCurrentMap];
});

传递给map回调的第二个参数是键。