from을 map
사용 하여 함수 내에서 색인 번호를 얻는 방법에 대한 옵션이 없습니다 .List
Immutable.js
var list2 = list1.map(mapper => { a: mapper.a, b: mapper.index??? }).toList();
문서는 을 map()
반환합니다 Iterable<number, M>
. 내가 필요한 것에 우아한 방법이 있습니까?
답변
당신은 현재 반복의 얻을 수있을 것입니다 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
매개 변수
콜백-세 개의 인수를 사용하여 새 배열의 요소를 생성하는 함수입니다.
1) currentValue
배열에서 처리중인 현재 요소입니다.2) 색인
배열에서 처리중인 현재 요소의 색인.3) 배열
배열 맵이 호출되었습니다.
답변
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);