Answers:
您将能够通过其第二个参数index
获得该map
方法的当前迭代。
例:
const list = [ 'h', 'e', 'l', 'l', 'o'];
list.map((currElement, index) => {
console.log("The current iteration is: " + index);
console.log("The current element is: " + currElement);
console.log("\n");
return currElement; //equivalent to list[index]
});
输出:
The current iteration is: 0 <br>The current element is: h
The current iteration is: 1 <br>The current element is: e
The current iteration is: 2 <br>The current element is: l
The current iteration is: 3 <br>The current element is: l
The current iteration is: 4 <br>The current element is: o
另请参阅: https : //developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map
参量
callback-产生新Array元素的函数,带有三个参数:
1)currentValue
数组中正在处理的当前元素。2)index
数组中正在处理的当前元素的索引。3)数组
调用了数组映射。
map
操作用于通过迭代给定数组的元素来构造新数组。要回答您的问题,是的,需要返回语句,在这种情况下,它将在每次迭代中返回值“ X”。因此,该代码的最终产品将为[ 'X', 'X','X','X' ]
'X'
是一个字符串。
Array.prototype.map()
指数:可以Array.prototype.map()
通过回调函数的第二个参数访问索引。这是一个例子:
const array = [1, 2, 3, 4];
const map = array.map((x, index) => {
console.log(index);
return x + index;
});
console.log(map);
Array.prototype.map()
:Array.map()
是一个对象,它将是this
回调函数的值。请记住,由于箭头函数没有与关键字的绑定,因此必须使用常规function
关键字来声明回调this
。例如:
const array = [1, 2, 3, 4];
const thisObj = {prop1: 1}
const map = array.map( function (x, index, array) {
console.log(array);
console.log(this)
}, thisObj);
使用Ramda:
import {addIndex, map} from 'ramda';
const list = [ 'h', 'e', 'l', 'l', 'o'];
const mapIndexed = addIndex(map);
mapIndexed((currElement, index) => {
console.log("The current iteration is: " + index);
console.log("The current element is: " + currElement);
console.log("\n");
return 'X';
}, list);