DESCRIPTIONますforeach()、マップ()、すべての()、いくつかの()とフィルタ()使用
記事の冒頭では、あなたの質問をします:
JavaScriptでは、配列内のデータのそれぞれに対処するには?
一つは、これだけで罰金をループするための簡単な、直接Aではないことを言うかもしれません。
はい、確かに、これは最も一般的です。
しかし、それを超えて、ES5はまた、タイトルなどの配列、に対処するためのより便利な方法を提供します。
次に、私は、これらの具体的な方法を説明するためにいくつかの簡単な例を挙げて行きます。
アレイを横断するために使用される、forEachの()、戻り値なし
ここで最初の与えられた配列(以下、一般的な例):
た ARR = [1、-2,3,4-、-5]。
それから私は物事を行う必要があるdoubleの配列で、各項目です。
arr.forEach(関数(項目、インデックス、アレイ){ 配列[インデックス] =項目* 2 。 }); console.log(ARR)。 // [2、-4,6,8、-10]
あなたが見ることができる匿名関数が含まれているパラメータは、今度は現在の要素とき、配列トラバーサルの項目を表して3つの引数を取るよう、forEachの()は、現在の要素の配列トラバーサルのインデックス、およびが横断されたインデックスを匿名関数を渡すことができます配列array。これら三つのパラメータを使用すると、私たちは、このような各配列要素を倍増することになる例として、多くのことを、行うことができます、あなたは最初のパラメータアイテムを使用する必要があります。しかし、2を掛けただけのアイテムは、我々は、我々は次の2つのパラメータのインデックスと配列を使用する必要があり、元の配列に代入することはできません。
上記の説明から、配列[インデックス]はアイテムの全体に等しいです。
arr.forEach(関数(項目、インデックス、アレイ){ console.log(配列[インデックス] ===アイテム) // 真 )}。
二つは、地図()、新しい配列は、後の処理に戻るを反復するために使用されます
VAR newArr = arr.map(関数(項目、インデックス、アレイ){ 戻り項目* 2 。 }); console.log(newArr)。 // [2、-4,6,8、-10]
戻り値を持つ()メソッドとのforEach()関数は、そのマップを除いて、同様であることがわかる、このような処理後の配列は元の配列に影響を及ぼさないであろう、新しい配列を返します。
三つは、すべての()、要素が条件を満たしているか否かを決定するためのアレイの各々は、ブール値を返します
VAR isEvery = arr.every(関数(項目、インデックス、アレイ){ 戻り項目> 0 。 }); console.log(isEvery)。 // 偽
あなたはそれが明確ではないが、一例は、配列arrの要素が正であるかどうかを決定することで、見ることができ、最終的なメソッドはfalseを返します。
四、いくつかの()、条件を満たすプレゼンス要素は、アレイは、ブール値を返すか否かを判断するため
VAR isSome = arr.some(関数(項目、インデックス、アレイ){ 戻り項目<0 。 }); console.log(isSome)。 // 真
方法と、すべての()は、同様に、例えば、アレイARRにおける負の要素があるかどうかを決定することであることがわかる、存在すると、最終的に方法がtrueを返すことは明らかです。
五、フィルタ()は、条件を満足する配列要素をスクリーニングするために、スクリーニング新しい配列の後に返し
VaRのマイナス= arr.filter(関数(項目、インデックス、アレイ){ 戻り項目<0 。 }); console.log(マイナス)。 // [-2、-5]
見ることができる、例えば、すべての負ARR配列を除外することであり、この方法は、最終的スクリーニング後に新しい配列を返す[-2、-5]。
注:パラメータとして匿名関数を渡す以外の上記の5つの方法は、第2のパラメータは、例えば、匿名関数でこの点に指定されたパラメータを送信することができます。
// のみ匿名関数パス arr.forEach(関数{(項目、インデックス、アレイ) console.log(この); // ウィンドウ })。
//は二つのパラメータ渡し arr.forEach(関数{(項目、インデックス、アレイ) console.log(この); // [1、-2、3、4、-5] }、ARR)。
互換性:あるため、上記の方法のES5方法に属し、それはIE8と互換性があり、ブラウザの下ではありません。
キー概要:
①のforEach()、値を返さないマップ()およびフィルタ()(、新しい配列を返し、すべての()といくつかの)ブール値を返します
②ウィンドウのデフォルトにこの時点で無名関数を、それが二番目のパラメータで変更することができますが渡さ
③5をトラバーサル方法は、ES5方法のすべての種類です