Array 驚きの5メソッド
JavascriptのArray.filter()など。知らなかったので。
基本ルール
- 元の配列に影響はしない。破壊的じゃない。
- 関数(==コールバック関数)を引数にする。
- コールバック関数の引数は3つ:
- element(値),
- index(0から始まるインデックス),
- array(元になる配列)
- every、some はあまり使わなそう。
Array.filter(fn):[戻り値]trueを返した要素のみにフィルタリングした配列
var arr = [23,523,23,11,54]; function gt24(e, i, a){ return e > 24; }; var arr02 = arr.filter(gt24); console.log(arr02); // [523, 54];
Array.map(fn):[戻り値]各戻り値をたばねた新しい配列
var arr = [23,523,23,11,54]; function mapThem(e, i, a){ e += 10; return e; }; var arr02 = arr.map(mapThem); console.log(arr02); // [33, 533, 33, 21, 64]
Array.forEach(fn):[戻り値]なし。全要素を使って処理をしたい時。
var arr = [23,523,23,11,54]; function plus10(e, i, a){ e += 10; console.log(e); }; var arr02 = arr.forEach(plus10); console.log(arr); // [23, 523, 23, 11, 54] console.log(arr02); // undefined。何も帰ってこない
Array.every(fn):[戻り値]Boolean。falseが返るまで、各要素を使って処理。
var arr = [23,523,23,11,54]; function gt12(e, i, a){ if (e>12) { console.log(e + '、だぜ!'); return true; } else { return false; } }; var arr02 = arr.every(gt12); /* 23、だぜ! 523、だぜ! 23、だぜ! */ console.log(arr); // [23, 523, 23, 11, 54] console.log(arr02); // false。もし全部trueなら、true。
Array.some(fn):[戻り値]なし。falseが返るまで、各要素を使って処理。
var arr = [23,523,23,11,54]; function gt20(e, i, a){ if (e<20) { console.log(e + '、だぜ!'); return true; } else { return false; } }; var arr02 = arr.some(gt20); /* 11、だぜ! */ console.log(arr); // [23, 523, 23, 11, 54] console.log(arr02); // true。もし全部trueなら、false。