Array.prototype.forEach() - 配列の各要素を材料に処理を実行する
Array.prototype.forEach()は、配列の各要素を材料に処理を実行するメソッドです。一般的な配列のループ処理はこのメソッドで行ないます。
概要
説明
Array.prototype.forEach ( callbackfn [ , thisArg ] )
第1引数(callbackfn)にコールバック関数を指定します。配列の各要素がこのコールバック関数にかけられます。コールバック関数は値、インデックス番号、配列そのもの、の3つの引数を受け取ります。コールバックの返り値は意味がありません。
第2引数(thisArg)を指定すると、それがコールバック関数内におけるthisの値となります。省略した場合、thisの値はundefinedです。
function callbackfn ( value, index, array ) {
// 処理
}
チュートリアル
例えば、配列の各要素を文字列として書き出したい、というテーマでArray.prototype.forEach()を利用してみましょう。
var array = [ "S", "Y", "N", "C", "E", "R", ] ;
var callbackfn = function ( value, index, sourceArray ) {
document.body.innerHTML += value ;
}
array.forEach( callbackfn ) ;
処理は内部で次のように繰り返されます。
callbackfn( "S", 0, array ) ;
callbackfn( "Y", 1, array ) ;
callbackfn( "N", 2, array ) ;
callbackfn( "C", 3, array ) ;
callbackfn( "E", 4, array ) ;
callbackfn( "R", 5, array ) ;
デモ
Array.prototype.forEach()のデモです。
<!-- このコードは編集できます。 -->
<!DOCTYPE html>
<html>
<head>
<style>
body {
white-space: pre-wrap ;
}
</style>
</head>
<body>
<script>
/** try it! **/
var array = [ "S", "Y", "N", "C", "E", "R" ] ;
array.forEach( function ( value, index, sourceArray ) {
document.body.appendChild( new Text( JSON.stringify( value ) + "\n" ) ) ;
} ) ;
/** try it! **/
</script>
</body>
</html>
サポート状況
Chrome | Firefox | Safari | Edge | IE | Opera | iOS Safari | Android |
---|---|---|---|---|---|---|---|
● | ● | ● | ● | ● 9+ | ● | ● | ● |
関連記事
- Array
- Arrayは配列を取り扱うための機能を備えたオブジェクトです。
- Array.prototype.find()
- Array.prototype.find()は、配列から条件を満たす値を取得するメソッドです。前方から後方にかけて検索し、条件を満たす一番最初の要素だけが返ります。条件を満たす要素が1つもない場合、undefinedが返ります。なお、findIndex()は、値ではなく、インデックス番号が返ります。
- Array.prototype.keys()
- Array.prototype.keys()は、配列の各キーで構成された新しいIteratorを返すメソッドです。
- Document.getElementsByName()
- getElementsByName()は、Documentのメソッドです。name属性を指定してノードを取得します。