まず、配列反復法
1、forEachの
コール
arr.forEach((value, index) => {
console.log(value, index)
})
forEach
再びアレイを介して各ループであり、これはコールバックを持つメソッドの戻り値がなく、コールバック関数は2つのパラメータがあり、最初のものは、各配列の値はvalue
、第二のパラメータの各々はアレイでありますインデックスに対応するインデックスindex
ヒントこのforEahc
スルーとjQueryループ$.each()
メソッドは、コールバック関数内で$ .each方法を有する2つのパラメータは、ことに注意することを除いて、同様であるforEach
逆に、最初のパラメータは、各項目の配列添字インデックスですindex
、 2番目のパラメータは、各項目の値のアレイでありますvalue
2、すべての
コール
const boolean = arr.every((value, index, arr) => {
return value==2
})
これは、短絡動作のアレイは、方法に幾分類似している&&
、真のテストアレイ法とみなすことができ、コールバックを持っているこの方法では、コールバック関数は3つのパラメータをとり、各項目の最初のテストでは、第二のテストアレイであります添字インデックス配列アイテム、及び第三のは元の配列の試験であります
試験アレイ実行する各every()
指定満たすすべての項目の配列内の場合は、各アレイを検証するために使用される指定された基準を満たしているコールバック関数内の方法は、アレイは、たびにコールバック関数を実行します条件リターンtrue
アレイ条件が満たされていない、リターンがあるときはいつでも、false
ヒントテストは空の配列である場合、それはすべての場合に返されますtrue
。この方法は、元の配列を変更しません、
3、いくつかの
コール
const boolean = arr.some((value, index, arr) => {
return value==2
})
ショート回路動作のアレイに幾分似ているこの方法||
、偽アレイの検査方法として使用することができ、コールバックを有し、この方法は、コールバック関数は3つのパラメータをとり、各項目の最初のテストが配列され、第二の試験であります各配列の添字インデックス、及び第三のは元の配列の試験であります
試験アレイ実行する各some()
アレイ内の各項目は、指定された条件が満たされたか否かを確認するために使用されるコールバック関数内の方法は、アレイは、もしすべての項目の配列が内部、たびにコールバック関数を実行します、リターンを指定された基準を満たしていないfalse
配列の条件が満たされるがあるたびにすぐに戻り、true
ヒントテストは空の配列である場合、それはすべての場合に返されますfalse
、それは条件を満たしている項目の配列を発見した場合、すぐに返されます、このメソッドは、条件を満足させるアイテムの配列を見つけることができません、それはそれを実行する必要がありますのでご注意、true
背後にあります、データはもはや実行していないだろう
4、マップ
コール
const newArr = arr.map((value, index, arr) => {
return value==2
})
この配列方法は、新しい配列を返し、結果として得られるアレイは、アレイのコールバック関数内の各アイテム後の結果のコレクションは、このメソッドのコールバック関数は、最初は、各試験のアレイである、3つのパラメータを有し、第2であります試験配列の添字インデックス、および第三のそれぞれは、元の配列の試験であります
それぞれがそれぞれの新しいアレイは、コールバック関数の結果セットであり、この後に、コールバック関数の配列をテストし、その結果の実装は内部新しいアレイに追加され、その後、新しい配列を返します
ヒントこのアプローチと元の配列を変更しますが、もcallback
元の配列の実行を変更
5、フィルタ
コール
const newArr = arr.filter((value, index, arr) => {
return value==2
})
この方法は、新しいアレイ配列を返し、新しい配列が結果、各コールバック機能テストフィルタアレイのフィルタを実行した後は、結果セットは、この方法の三つのパラメータのコールバック関数、各アレイは最初のテストの条件を満足しますアイテムは、第二は、各配列の添字インデックスをテストすることであり、第3は、元の配列の試験であります
この方法は、以下の場合、それは除外され満足テストアレイは、各コールバック関数を指定しますが、指定された項目を満たすだけの結果が新しいアレイに追加することができ、そして戻り、ない、フィルタのフィルタと等価です満たされていない、空の配列が返されます
ヒントは、元の配列を変更しないだろう、それは新しいフィルタアレイの結果を返します。
6、削減
コール
const result = arr.reduce((count, value, index, arr) => {
return count + value
},initCount)
この配列方法は、各蓄積アレイの結果の値が返され、この方法は、2つのパラメータがあります。
最初のコールバックで、コールバック関数は、4つのパラメータがあり、最初の配列エントリは、実行の累積結果、または初期のユーザ定義の積分結果は、第二は、各アレイをテストするたびに実行されます。アイテム、および第三の各配列の添字インデックスをテストすることであり、第4は、元のテストのアレイであります
第2のパラメータは、この最初の累積結果であるユーザ定義定義されている場合、この値を使用して、コールバック関数への最初の引数として積算値の累積最初の配列、及び結果を初期化するために実行されます。サイクル、続いて第2の累積引数は、アレイ内のデフォルトで、その後、最初のアイテムを継続し、そうでない場合
方法の類似点と相違点:
図1に示すように、forEach
各アレイトラバーサルサイクルであり、結果を返さない、reduce
それは各アレイの合計であり、最終的な累積値を返します
2、every
及びsome
2が反対している、ブール値を返し、前者がすべて真である、それは返すtrue
限り、真の、即時のリターンがあるようである、実行後に期間を終了していないtrue
、とエントリの閉鎖後実行
3、map
およびfilter
新しい配列、前者を返すが、計算結果が条件を満たしている配列を返しているアレイの各アレイの計算結果で返します
図4に示すように、上記の方法は、元の配列を変更しません