JavaScript数组#映射:索引参数

JavaScript Array#map: index argument

本文关键字:索引 参数 映射 数组 JavaScript      更新时间:2023-09-26

我的问题是关于JavaScript中数组的map方法。

您可以向它传递一个函数,该函数接受第二个参数,即正在处理的数组的当前元素的索引,但是。。。目的是什么?当你做的时候会发生什么,不做的时候有什么区别?

您将使用此功能做什么?

当前项的索引总是传递给回调函数,如果不在函数中声明,唯一的区别是不能按名称访问它。

示例:

[1,2,3].map(function(o, i){
    console.log(i);
    return 0;
});
[1,2,3].map(function(o){
    console.log(arguments[1]); // it's still there
    return 0;
});

输出:

0
1
2
0
1
2

演示:http://jsfiddle.net/Guffa/k4x5vfzj/

有时元素的索引很重要。例如,此映射将每隔一秒的元素替换为0:

var a = [1, 2, 3, 4, 5, 6];
var b = a.map(function(el, index) {
    return index % 2 ? 0 : el;
});
console.log(b);

输出:

[1, 0, 3, 0, 5, 0]

以下是对map函数的描述:

arr.map(callback[, thisArg])

callback
函数,该函数生成新数组的一个元素,采用三个参数:

currentValue
数组中正在处理的当前元素。

index
数组中正在处理的当前元素的索引。

array
阵列映射被调用。

map函数将回调函数作为参数(而不是索引作为参数,正如编辑前问题中最初所述)。回调函数有一个索引作为参数-回调是自动调用的,所以您自己不提供索引。如果只需要当前值,则可以省略其他参数。