JavaScript Array#map:索引参数
我的问题是关于JavaScript中数组的map
方法。
您可以传递一个函数,它接受第二个参数,即正在处理的数组的当前元素的索引,但是…有什么目的? 当你这样做时会发生什么,当你不这样做时有什么区别?
你会使用这个function?
当前项的索引总是传递给callback函数,唯一不同的是你不能通过名称来访问它。
例:
[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
function的描述:
arr.map(callback[, thisArg])
callback
产生新数组元素的函数,带三个参数:
currentValue
正在数组中处理当前元素。
index
数组中正在处理的元素的索引。
array
数组映射被调用。
map函数将callback函数作为参数(而不是索引作为参数,正如在编辑之前的问题中所述)。 callback函数有一个索引作为参数 – callback是自动调用的,所以你不要自己提供索引。 如果您只需要当前值,则可以省略其他参数。