map() 函数内的索引

我缺少一个选项,如何使用以下命令获取函数内的索引号:mapListImmutable.js

var list2 = list1.map(mapper => { a: mapper.a, b: mapper.index??? }).toList();

文档显示 返回 。有什么优雅的方法可以满足我的需求吗?map()Iterable<number, M>


答案 1

您将能够通过其第二个参数获取该方法的当前迭代。indexmap

例:

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

参数

回调 - 生成新 Array 的元素的函数,采用三个参数:

1) 当前值
数组中正在处理的当前元素。

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

3) 数组
数组映射被调用。


答案 2

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()

  • 回调函数的第三个参数公开了调用 map 的数组
  • 的第二个参数是一个对象,它将是回调函数的值。请记住,您必须使用 regular function 关键字才能声明回调,因为箭头函数没有自己的绑定到关键字。Array.map()thisthis

例如:

const array = [1, 2, 3, 4];

const thisObj = { prop1: 1 }

const map = array.map((x, index, array) => {
  console.log(array);
  console.log(this)
}, thisObj);