1、のために
横断する最も簡単な方法は、最も頻繁に使用される方法を最適化することが可能です。
1つの VARの ARR = [1、2、3、4、5、6 ] 2 のための(VAR i = 0; I <arr.length; iは++ ){ 3 はconsole.logを(ARR [i])と 4 } 5 6 // 1 2 3 4 5 6
最適化:配列国立交通大学、効果が最適化より明らかだった一時変数の使用、繰り返し取得配列の長さを避けるために長さまで保存、
1つの VAR ARR = [1、2、3、4、5、6 ] 2 のvar LEN = arr.length 3 のための(VAR i = 0; iがLEN <; iは++ ){ 4 はconsole.log(ARR [i])と 5 } 6 7 // 1 2 3 4 5 6
2、のための...で...
循環の人々の多くが、低効率
VAR ARR = [1,2,3,4,5,6] (ARRでVARキー)のための{ にconsole.log(ARR [キー]) } // 1 2 3 4 5 6
3、のための...の...【ES6】
パフォーマンスは(オブジェクトがリサイクルできない)のための...で...、まだないための最も一般的なとしてより優れているが、
1 VAR ARR = [1、2、3、4、5、6 ] 2 のための(VARのARRのキー){ 3 にconsole.log(キー) 4 } 5 6 // 1 2 3 4 5 6
4、forEachの
コールバックメソッドに入れて、配列内のいくつかの要素がありますが数回行われることになります
第2のパラメータの配列要素の間のインデックスの配列パラメータの最初の要素は、第三の引き数は、それ自体で、
より高い周波数の使用が、配列トラバーサル方法が付属して、パフォーマンスは依然として平均循環(ほんのわずかに低い、比較的良好)よりもわずかに低いです
1つの VAR ARR = [1、2、3、4、5、6 ] 2 arr.forEach(関数(項目、idnex、アレイ){ 3 にconsole.log(項目) // 1 2 3 4 5 6 4 にconsole.log (配列) // [1、2、3、4、5、6] 5 })
5、マップ
各素子を介して、各要素(要素が処理後返してもよい)(MAPマップ一対一で)返します
返された新旧の配列の長さは同じです。
より広く使用されますが、パフォーマンスはforEachのほど良好ではありません
1つの VAR ARR = [1、2、3、4、5、6 ] 2 VAR newArr = arr.map(関数(項目、idnex){ 3 リターン項目* 項目 4 }) 5 6にconsole.log(newArr) // [1、4、9、16、25、36]
図6に示すように、フィルタ
アレイを介して、必要な要素を表示し、新しい配列を返します
1つの VARの ARRは= [ 2 {ID :. 1は、名称: '購入T'、DONE:trueに}、 3。 {ID:2、名称: '購入ノート'、DONE:trueに}、 4。 {ID :. 3、名称: ' DONE書道」:falseに} 。5 ] 6。 7。 VAR newArr = arr.filter(関数(項目、インデックス){ 8。 リターンitem.done 9。 }) 10 11。 にconsole.log(newArr) 12は 13である 。// [{ID: 1、名称: '購入T'、行わ:真}、{ ID:2、名称: ' 購入ノート'、行わ:真}]
7、いくつかの
配列を通じ、限りそうでない場合はfalse、複数の要素の適格trueを返しているよう
1つの VAR ARR = [ 2 {ID:1、名称: '买笔'、行わ:真}、 3 {ID:2、名称: '买笔记本'、行わ:真}、 4 {ID:3、名称: '练字」、行わ:偽} 5 ] 6 7 VARの BOOL = arr.some(関数(項目、インデックス){ 8 リターンitem.done 9 }) 10 11にconsole.log(BOOL) // 真
8、すべての
配列を通じて、一致した各要素は、それが真、そうでない場合はfalseを返します
1つの VAR ARR = [ 2 {ID:1、名称: '买笔'、行わ:真}、 3 {ID:2、名称: '买笔记本'、行わ:真}、 4 {ID:3、名称: '练字」、行わ:偽} 5 ] 6 7 VARの BOOL = arr.every(関数(項目、インデックス){ 8 リターンitem.done 9 }) 10 11にconsole.log(BOOL) // 偽
9、見つけ【ES6】
無資格要素がundefind返されませんがある場合は、配列を、最初の要素の資格を返します。
1つの VAR ARR = [1、1、2、2、3、3、4、5、6 ] 2 3 VARの NUM = arr.find(関数(項目、インデックス){ 4 戻り項目=== 3 5 }) 6 7にconsole.log(NUM) // 3
10、findeIndex【ES6】
条件は-1の要素を満たしていない場合は、配列を通じ、返され、資格の最初の要素のインデックスを返します。
1つの VAR ARR = [1、1、2、2、3、3、4、5、6 ] 2 3 VARの NUM = arr.findIndex(関数(アイテム){ 4 戻り項目=== 3 5 }) 6 7コンソール.logの(NUM) // 4
休憩を使用するには、継続するために使用することができ、それが閉鎖トラップの問題を解決するための機能が、関数であるためのforEach、マップ、フィルタ、削減、すべての、いくつかの問題が壊れており、継続されますが、効果的ではありません:まとめ。以下のための...の、しばらく..in、。、()、forEachの()、マップ()のためのために...リサイクル使用のためのオブジェクトのプロパティの:のために...で使用される配列要素を横断するための
心の注意:それぞれの概要は昇華です!