回答:
2番目のパラメーターを使用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-3つの引数を取って、新しい配列の要素を生成する関数:
1)currentValue
配列で処理されている現在の要素。2)index
配列で処理されている現在の要素のインデックス。3)配列
配列マップが要求されました。
map
操作は、指定された配列の要素を反復処理して新しい配列を構築するために使用されます。あなたの質問に答えるには、はい、returnステートメントが必要です。この場合、各反復で値「X」を返します。したがって、コードの最終製品は次のようになります[ 'X', 'X','X','X' ]
'X'
は文字列です。
Array.prototype.map()
インデックス:Array.prototype.map()
コールバック関数の2番目の引数を介してインデックスにアクセスできます。次に例を示します。
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
です。arrow関数にはキーワードへの独自のバインディングがないため、コールバックを宣言するためにregular 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);