- JavaScriptの配列と反復の4つの基本的な方法

幸いなことに、飛行船は、[専門家グループ] + 1892213はあなたに別の小さなクーデターを与えるには大きなを失うことになります

次の4つの基本的な方法の配列は以下のとおりです。

この方法は、注記に記載の
プッシュ()最後方の配列への1つのまたは複数の要素を挿入し、配列の新しい長さは、元の配列の変化するという結果を返す
削除され、配列の最後の要素を削除するには、POP()を変化素子の結果を返しますソースアレイは
、元の配列の長さは変更することができる新たな配列のための1つまたは複数の要素、戻り結果を挿入する前に抜き()配列
シフト()は、元の変更され削除される要素に結果を返す、配列内の最初の要素を削除します配列
次のように反復する方法:

ノートに記載された方法
私たちが知っているこのサイクルのためにすべて
のforEach()やforループに似ていますが、より多くのニーズが値を返さない互換性のIE8のforEach()を可能にします。すなわち、その戻り値は不定である
)フィルタ(結果が真であるアイテムを返し、新しいアレイを形成します。元の配列の変更されませんフィルタリングの役割を果たすことができ
、処理の各主要アレイのマップを()
すべての()の戻り偽がある場合、平均トラバーサルが停止し、請求の各がtrueを返し、最終的な結果を真に戻る前に
限り真のリターンがあるとして)(一部、トラバーサルは停止
四つの基本的な方法の配列(配列要素の追加と削除)
プッシュ()
プッシュ():最後尾の配列への1つのまたは複数の要素を挿入し、その結果を返します新しい配列の長さのために。

構文:

アレイ.push =配列の新しい長さ(要素);
1
コードの例:

VaRのARR = [ "王"、 "王"、 "3王"];

VAR結果1 = arr.push(「王のSi」); //要素の端部に挿入された
VAR結果2 = arr.push(「王呉」、「王6」);端を挿入//複数の要素

console.log(結果1); //結果を印刷:. 4
にconsole.log(結果2); //結果を印刷:. 6
はconsole.log(JSON.stringify(ARR)); //結果の印刷:[ "王"、「王「」4の王III「」キング「」王5「」6の王「]

----------------
免責事項:この記事は元の記事CSDNブロガー「ゲン江」であり、BY-NC-SAの著作権契約CC 4.0に従って、再現し、元のソースとのリンクを添付してくださいこの文。
オリジナルリンクします。https://blog.csdn.net/Yuanriver/article/details/102666251

POP()
POP():要素が削除されるように、アレイの最後の要素を削除し、それが結果を返します。

構文:

=削除された素子アレイ.pop();
1。
コードの例:

VaRのARR = [ "王"、 "王"、 "3王"];

た結果1 arr.pop =();

console.log(結果1); //印刷結果:王3
はconsole.log(JSON.stringify(ARR)); // 結果の印刷:[ "王"、 "王"]
1。
2
3。
4。
5。
6。
抜き)
抜き():結果を返した一つ以上の配列要素を挿入する前に、配列の新しい長さです。要素を挿入した後、インデックスの他の要素は、順番に調整します。

構文:

配列=配列.unshift(要素)の新しい長さ;
1
コードの例:

VaRのARR = [ "王"、 "王"、 "3王"];

VaRの結果1 = arr.unshift( "王のSi"); //要素の先頭に追加
するvar結果2 = arr.unshift( "王呉"、 "王六"); //は、複数の要素を付加

console.log(結果1); //結果を印刷:. 4
にconsole.log(結果2); //結果を出力:. 6
はconsole.log(JSON.stringify(ARR)); //結果の印刷:[ "王呉"、「王6「」4の王「」王「」王「」キングIII「]

。1
2
3
4
5
6
7
8
9
シフト()
シフト()、配列の最初の要素を削除除去要素に結果を返します。

構文:

=削除された素子アレイ.shift();
1。
コードの例:

VaRのARR = [ "王"、 "王"、 "3王"];

VAR結果1 = arr.shift()。

console.log(結果1); //印刷結果:王
はconsole.log(JSON.stringify(ARR)); // 結果を出力:[ "王"、 "三王"]
。1
2
。3
。4
。5
。6
アレイ横断
取得し、アレイ内の各素子の動作:ある配列を介し。私たちの戦闘開発では、非常に頻繁に使用。

前記の反復処理する方法であって、すべての()、フィルタ()、forEachの()、マップ()、いくつかの()

PS:この方法は、いくつかの元の配列は変更されません。

構文:

アレイ/ブール/いいえ=配列.every /フィルタ/ forEachの/マップ/一部(
関数(要素、インデックス、ARR){
プログラムおよび戻り値;
1
2
。3
これらの方法は、我々は、forループの一部を置き換えることができます。ここでは紹介してオンにします。

以下のためのループ反復する
例:

VaRのARR = [ "ミレー"、 "米"と"M"];
{(; I <arr.length I ++のvar I = 0)するため
にconsole.log(ARR [I]); // ARR [I]各アレイ素子Iを表します
}

console.log(ARR);
1
2
3。
4。
5。
6つの。
印刷結果:

 

forEachの()トラバーサル
のforEach()このメソッドは、IE8のブラウザよりも多くを横断サポートしています。IE8以下のブラウザでは、このメソッドをサポートしていません。あなたがのforEachを使用していない、互換性のIE8を必要とするのであれば、代わりにすることができ反復するforループを使用します。

forEachの()メソッドは、パラメータとしての機能を必要とします。この機能はありません私達によって作成されますが、私たちの呼び出しによって、我々は、コールバック関数を呼び出します。

配列内のいくつかの要素がありますが、コールバック関数が複数回実行されます。機械加工後、ブラウザが要素を横断します。

コールバック関数は3つのパラメータを渡します:

最初のパラメータは、現在の要素を横断しています

2番目のパラメータのインデックスは、現在の要素を横断しています

3番目のパラメータはアレイ繰り返されています

コード例:

VaRのARR = [ "王"、 "王"、 "3王"];

arr.forEach(関数(項目、インデックス、OBJ){
にconsole.log( "項目:" +アイテム)
はconsole.log( "インデックス" +インデックス)
はconsole.log( "OBJ:" + OBJ)
コンソール.logの( "------");
});
1
2
3
4
5
6
7
8
打印结果。

アイテム:王の
インデックス:0
OBJ:王、王2、3人の王
----------

アイテム:キング
インデックス:. 1
OBJ:王、王2、3人の王
----------

項目:王3
度:2
OBJ:王、王、王3
----------
。1
2
3
4
5
6
7
8
9
10
11
12は
13であり、
14
のforEach()戻り値があることに留意されたいです未定義。つまり、それは戻り値はありません。あなたは、このようなやり方を受信するtempArry = arr.forEach()をしようとすると、それが影響次第ではありません。

フィルタ()
構文:

Array.prototype.filter(関数(項目、インデックス){})
1。
説明:各項目の配列操作コールバック関数では、関数は真の結果の項目を返し、新しいアレイを形成する(戻り値は新しい配列であります)。

実施例1:4より大きいARR1配列要素を検索し、新しい配列を返します。コードは以下の通りであります:

ここで、R1 = [1、3、6、2、5、6]。

ARR2はarr1.filter = VAR(関数(項目、インデックス){ある
リターン項目> 4; //リターン素子4より大きいARR1
})
はconsole.log(ARR2です)。

。1
2
3。
4。
5。
6。
7つの。
印刷結果:

 

例2:

VaRのARR1 = [ "重慶"、 "渝中"、 "北部"、 "沙坪"];

arr1.filter ARR2 = VAR(機能(要素、インデックス、アレイ){
ARR1におけるIF(element.length> 2){//要素、長さが二つ以上の文字であれば、そして私の行くARR2の上に置きます
; trueを返すように
}
偽に戻る;
});
ARR1のにconsole.log()
はconsole.log(ARR2です)。

。1
2
3
4
5
6
7
8
9
10
11
結果:

 

地図()メソッドの
解釈:配列演算コールバック関数内の各アイテムは、この関数の結果を返すための新しい配列(新しいアレイが処理後に戻されます)。

例えば、既知の配列ARR1があり、私はあなたがマップ・メソッドを使用することができる場所、ARR1それぞれが素数プラス10にするよう求めました。例えば:

ここで、R1 = [1、3、6、2、5、6]。

ARR2はarr1.map = VAR(関数(項目、インデックス){ある
リターンアイテム+ 10; //する各要素プラス10 ARR1

})
はconsole.log(ARR2である)、
1。
2
3。
4。
5。
6。
7つの。
印刷結果:

 

例2:

VaRのARR1 = [ "重慶"、 "渝中"、 "北部"、 "沙坪"];

({関数(要素、インデックス、アレイ)ARR2はarr1.map = VARであり
、すべての要素に// ARR2に配置された増加ARR1列"VAE"は、ある要素の+ "VAE"を返します。
})。

(ARR1の)はconsole.log;
はconsole.log(ARR2である)、
1。
2
3。
4。
5。
6。
7。
8つの。
結果:

 

すべての()メソッドを
説明する:、すべてのは、trueを返します戻り値trueの場合、配列内の各項目は、コールバック関数を実行し、リターンがfalseがあれば、その後、歩行を停止し、このメソッドはfalseを返します。

注:ブール・パラメータは、コールバック関数であるすべての()メソッドの値を返します。

例えば:

VaRのARR1 = [ "重慶"、 "渝中"、 "北の"、 "沙坪"];
VAR = bool1のarr1.every(関数(要素、インデックス、アレイ){
IF(element.length> 2){
falseに戻り;
}
真のリターンへ;
});
はconsole.log(bool1); //出力:偽。限り、二つ以上の文字の要素の長さがあるので、それはfalseを返します

VaRのARR2 = [ "重慶"、 "渝中"、 "北の"、 "シェーピング"];
VAR =するbool2のarr2.every(関数(要素、インデックス、アレイ){
(element.length> 2){IF
;偽に戻り
}
; trueを返すように
)};
はconsole.log(するbool2); //出力:真。各要素の長さは2つの文字ですので。
----------------

おすすめ

転載: www.cnblogs.com/java67/p/11728552.html