JavaScript Array #map:index参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript Array #map:index参数相关的知识,希望对你有一定的参考价值。

我的问题是关于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

但是:Kua zxsw指出

另一答案

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

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

输出:

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 调用了数组映射。

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

以上是关于JavaScript Array #map:index参数的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中的Array和Map集合对象

JavaScript Array map() 方法

JavaScript Array map()filter()以及map()与filter()区别

javascript JS__array_map

javascript 从多个调用构造数组Array()。fill()。map()

JavaScript Array #map:index参数