こんばんは。きわさです。
javascriptで配列を扱う際に知っておきたいメソッドです。
map
配列から新たな配列を作成します。
function test1() { var array0 = [0x41,0x42,0x43,0x44,0x45,0x46]; var array1 = array0.map(function(value, index, array) { return String.fromCharCode(value); }); console.log(array1); // ["A","B","C","D","E","F"] return; }
map は渡した関数を配列の各要素に対して実行し、その戻り値の配列を返します。
渡した関数の引数 value, index, array はそれぞれ下記の値が格納されています。
value: 現在処理を行っている要素の値
index: 現在処理を行っている要素のindex
array: もとの配列
つまり、array0の場合は要素数が6なので、関数は6回呼ばれます。
1回目は、value に 0x41、index に 0、array に array0 が渡されます。
そして 0x41 に対応する “A” がarray1の1つ目の要素となります。
filter
配列の特定の要素を除いた配列を返します。
function test2() { var array0 = [0x41,0x42,0x43,0x44,0x45,0x46]; var array2 = array0.filter(function(value, index, array) { return value % 2 == 0; }); console.log(array2); // [66, 68, 70] return; }
filter は渡した関数を配列の各要素に対して実行し、その戻り値がtrueである要素の配列を返します。
渡した関数の引数等は map と同様です。
1回目は、value に 0x41、index に 0、array に array0 が渡されます。
そして value % 2 == 0 は偶数であれば true となる条件式です。
0x41(=65) は奇数なので false となるため、array2 には含まれません。
次の 0x42(=66) は偶数なので array2 の1つ目の要素となります。
forEach
配列の各要素に対して処理を実行します。
function test3() { var array0 = [0x41,0x42,0x43,0x44,0x45,0x46]; var array3 = []; array0.forEach(function(value, index, array) { array3.push(value); }); console.log(array3); // [65, 66, 67, 68, 69, 70] return; }
forEach は渡した関数を配列の各要素に対して実行します。
渡した関数の引数等は map と同様です。
1回目は、value に 0x41、index に 0、array に array0 が渡されます。
この関数では array3 に value を追加しているだけなので、
処理終了後には、array3 は、もとの array0 の要素すべてを含む配列となります。
Javascriptで配列を扱う場合は、この map、filter、forEach は良く使うことになると思うので、覚えておきたいところです。