最近、学習方法の多くと配列インデックスの配列なので、その仕上げシステム
配列インデックス
//索引:
VARのARR = [ "hello"を、真、 "世界"、2,5、 "ABC"];
console.log(ARR)// [ "hello"を、真、 "世界"、2、5、 "ABC"]
はconsole.log(arr.length)// 6
//增:
はconsole.log(ARR [0] )//ハロー
はconsole.log(ARR [arr.length-1])// ABC
はconsole.log(ARR [arr.length])//未定義
= "HAHAHAH" [arr.length] ARR。
console.log(ARR [10])//未定義
ARR [10] = "heiheihie"
はconsole.log(ARR)// [ "ハロー"、真の"世界"、2,5、 "ABC"、 "HAHAHAH"空×3、 "heiheihie"]
はconsole.log(ARR [7])//未定義
はconsole.log(ARR [8])//未定義
はconsole.log(ARR [9])//未定義
删//:
コンソール.logの(ARR。
長さ)// 11 arr.length = 4。
console.log(ARR)// [ "hello"を、真、 "世界"、2]
//改:
ARR [1] = "QWE"
ARR [3] = 123
にconsole.log(ARR)// [ "こんにちは"、 "QWE"、 "世界"、123]
//查:
(VAR用I = 0; I <arr.length; iは++){
にconsole.log(ARR [I])//ハロー
// QWE
//世界
// 123
}
メソッドの配列
1.配列要素を増やします
アレイの端部に一つ以上の要素を追加する1.1プッシュ()、および新しい長さを返します
VAR ARR = [ "hello" を、真、123、 "世界"]
arr.push(456、 "こんにちは");
はconsole.log(ARR)。
コンソール画面に出力
1.2配列の先頭に1つの以上の要素を追加する()抜き、新しい高さを返します
VAR ARR = [ "hello" を、真、123、 "世界"]
arr.push(456、 "こんにちは");
arr.unshift(789)。
console.log(ARR)。
コンソール画面に出力
2.配列要素を削除
2.1削除し、配列の最後の要素を返します
VAR ARR = [ "hello" を、真、123、 "世界"]
arr.pop();
console.log(ARR)
コンソール画面に出力
2.2削除し、配列の最初の要素を返します
VAR ARR = [ "hello" を、真、123、 "世界"]
arr.pop();
arr.shift();
console.log(ARR)。
コンソール画面に出力
3.他の方法アレイ素子
3.1置換:M開始からarr.splice(M、N、DATA1、DATA2、...)、、Nの合計は、データを交換
VAR ARR = [ "hello" を、真、123、 "世界"]
arr.splice(1,2) AR r.splice(1,2、 "管理者")
arr.splice(2,0、 "管理者")
arr.splice(2,0、 "管理者"、 "A"、」 B」、345)
にconsole.log(ARR)
コンソール画面に出力
3.2傍受:arr.slice(m、n)が、既存の配列から選択された要素を返します。この方法は、(開始、終了)をスライス、ストラトが必要とされる2つのパラメータを取り、いくつかの最初から開始し、端部は任意であり、最後のものは省略されている、いくつかの終了(終了位置が含まれていない)の最初を表します。開始および終了は、AS -1負の数を示し、最後の、最後から数え開始を示す、負考えることができます。
VAR ARR = [ "hello" を、真、123、 "世界"]
VaRのA = arr.slice(1,3)
はconsole.log(A)
のvar A = arr.slice(1)
にconsole.log(A)
コンソール画面に出力
3.3逆()反転アレイ、結果を返します
VaRのA = arr.reverse()。
console.log(A)
コンソール画面に出力
3.4ソート()文字によってルールをソートするには、結果を返します。
VaRのA = arr.sort()。
console.log(A)
コンソール画面に出力
3.5のvalueOf()元のオブジェクト配列の値を返し
VAR ARR = [ "hello" を、真、123、 "世界"]
arr.sortするvar A =();
VaRのA = arr.valueOf()。
console.log(A)
コンソール画面に出力
3.6のtoString()は、文字列戻るに変換されます。
VAR ARR = [ "hello" を、真、123、 "世界"]
VaRのA = arr.toString()。
console.log(A)
コンソール画面に出力
3.7)(参加列に配列のすべての要素デリミタ指定された文字列を返します。
区切り文字として入力文字にオプションパラメータ、デフォルトは「」数;(STR)に参加。
VAR ARR = [ "hello" を、真、123、 "世界"]
するvar A = arr.join( " - ");
console.log(A)
コンソール画面に出力
3.7連結は、()メソッドは、既存の配列を変更しない、二つ以上の配列を接続するために使用されるが、唯一の配列のコピーが接続されて戻ります。
アレイが省略されたソースを作成し、連結(DATA1、DATA2を、...);あるいは、データがマージされる全てのパラメータ、データアレイ、元の配列に結合されたデータであり、データは、元のデータに直接添加されたときに、配列の特定の末端コピー。
VAR ARR = [ "hello" を、真、123、 "世界"]
VaRのA = arr.concat( "こんにちは"、 "次");
はconsole.log(A)
コンソール画面に出力
3.8のindexOf()指定されたデータによれば、左から右へ、クエリの位置は、指定されたデータが存在しない場合、戻り、アレイに表示され-1。このメソッドは、クエリの方法で、それは、配列を変更しません。
VAR ARR = [ "こんにちは"、真、123、 "世界"]
のvar A = arr.indexOf(123)。
console.log(A)
コンソール画面に出力
indexOfとのlastIndexOfは()()右から左にあります。
アレイを横断するために使用される3.9のforEach()ES5新しい方法は、この方法は、値を返しません。配列自体、インデックスに対応するデータアレイを横断:forEachのは、アレイの各実行に応じて、コールバック関数を受信し、デフォルトコールバック関数、すなわち3つのパラメータを有しています。
VAR ARR = [ "こんにちは"、真、123、 "世界"]
のvar A = arr.forEach(関数(値、指数、自己){
にconsole.log(値+ " - " +インデックス+ " - " + (ARR ===自己));
})
はconsole.log(A)
この方法は、値を返さないため、コンソールのディスプレイに出力、にconsole.log(A)は未定義です
3.10マップ()1 forEachの同じ機能、コールバック関数は、結果2.mapを返し、最終的に新しい配列が返され形成するために、すべてのコールバック関数の戻り値をマップします。
VaRのARR = [ "こんにちは"、真、123、 "世界"]
のvar A = arr.map(関数(値、指数、自己){
console.log(値+ " - " +インデックス+ " - " +(ARR ===自己))。
})
VaRのA = arr.map(関数(値、指数、自己){
「こんにちは」+値を返します。
})
console.log(a)に
はconsole.log(ARR)
コンソール画面に出力
3.11filter()1 forEachの同じ機能; 2.filterコールバック関数は、ブール値を返す必要があり、trueの場合、データの回数をこのフィルタに戻され、そして最終的には新たなコールバック関数を形成するために、すべてのフィルタ戻り値が(配列を返しますこの機能は、「フィルタ」)として理解されています。デフォルトでは三つのパラメータ、すなわち値、インデックス、自己があります。
VAR ARR = [ "こんにちは"、真、123、 "世界"]
のvar A = arr.filter(関数(値、指数、自己){
にconsole.log(値+ " - " +インデックス+ " - " + (ARR ===自己));
})
VaRのA = arr.filter(関数(値、指数、自己){
戻りvalue.length> 3;
})
はconsole.log(A)
にconsole.log(ARR)
コンソール画面に出力
3.12すべての()配列条件の各項目が満たされているかどうかを決定するために、唯一のすべての条件が満たされて、それがtrueを返します。すべての()は、コールバック関数が必要な値を、すべての(コールバック)を返し、パラメータとしてコールバックを受信し、コールバックは、3つのデフォルトパラメータ、それぞれ、値、インデックス、自己を有します。
コールバック関数がtrueを返した場合、全てを横断する機能類似のforEachは、偽、実行が停止している場合、データがfalseを返す最初の位置で停止し、トラバースバックもはやありません。
var arr = ["Tom","abc","Jack","Lucy","Lily","May"]; var a = arr.every(function(value,index,self){ console.log(value + "--" + index + "--" + (arr == self)) }) // 打印结果为: // Tom--0--true //因为回调函数中没有return true,默认返回undefined,等同于返回false //demo2: var arr = ["Tom","abc","Jack","Lucy","Lily","May"]; var a = arr.every(function(value,index,self){ console.log(value + "--" + index + "--" + (arr == self)) return value.length < 4; }) // 打印结果为: // Tom--0--true // abc--1--true // Jack--2--true //因为当遍历到Jack时,回调函数到return返回false,此时Jack已经遍历,但是后面数据就不再被遍历了 //demo3: var arr = ["Tom","abc","Jack","Lucy","Lily","May"]; var a = arr.every(function(value,index,self){ console.log(value + "--" + index + "--" + (arr == self)) return true; }) // 打印结果为: // Tom--0--true // abc--1--true // Jack--2--true // Lucy--3--true // Lily--4--true // May--5--true //因为每个回调函数的返回值都是true,那么会遍历数组所有数据,等同于forEach功能
各コールバック関数の戻り値がtrueの場合、すべてのリターンは限りコールバック関数は、すべての偽の戻り値を偽の値を返すがあるとして、真であります
VaRのARR = [ "トム"、 "ABC"、 "ジャック"、 "ルーシー"、 "リリー"、 "月"];
VaRのA = arr.every(関数(値、指数、自己){
戻りvalue.length> 3;
})
はconsole.log(A)。//偽
// DEMO2:
VARのARR = [ "トム"、 "ABC"、 "ジャック"、 "ルーシー"、 "リリー"、 "月"];
VaRのA = arr.every(関数(値、指数、自己){
戻りvalue.length> 2;
})
はconsole.log(A)。//真
3.13いくつかの条件を満足するエントリがあるかどうか()配列が決定され、限り条件が満たされるように、真を返します。いくつかは()コールバック関数が必要な値を返す、パラメータとしてコールバックを受信し、いくつかの(コールバック);コールバックは、3つのデフォルトパラメータ、それぞれ、値、インデックス、自己を有します。
配列内の各項目を判断するので、限り、コールバック関数がtrueを返しているように、いくつかは、trueを返します、そしてあらゆるので逆に、戻り値が真の出会いは、コールバック関数であるとき、あなたは結果を決定することができ、その後、実行を停止しますもはやトラバースすべてのデータの後ろに、真を返すように位置で最初のピットストップでは、コールバック関数は、あなたは、それが同様のforEachを達成するために、すべてのデータを横断する最終結果を決定するために、逆方向に進むために必要がある場合はfalseを返しますこの関数は、すべてを通過します。
VaRのARR = [ "トム"、 "ABC"、 "ジャック"、 "ルーシー"、 "リリー"、 "月"];
VaRのA = arr.some(関数(値、指数、自己){
にconsole.log(値+ " - " +インデックス+ " - " +(ARR ==自己))
戻りvalue.length> 3;
})
//打印结果为:
//トム- 0 -真
ABC // - 1 -真
//ジャック- 2 -真
// DEMO2:
VAR ARR = [ "トム"、 "ABC"、」ジャック」、 "ルーシー"、 "リリー"、 "月"];
VaRのA = arr.some(関数(値、指数、自己){
にconsole.log(値+ " - " +インデックス+ " - " +(ARR ==自己))
trueを返します。
console.log(値+ " - " +インデックス+ " - " +(編曲:==自己))
falseを返します。
})
//打印结果为:
//トム- 0 -真
// ABC - 1 -真
//ジャック- 2 -真
//ルーシー- 3 -真
//リリー- 4 --true
//月- 5 -真
真である限り、コールバック関数の戻り値があるとして、戻り値がtrueで、すべてのコールバック関数のいくつかが偽の値を返し、すべてのコントラストは、戻り値の一部だけが偽であります
VaRのARR = [ "トム"、 "ABC"、 "ジャック"、 "ルーシー"、 "リリー"、 "月"];
VaRのA = arr.some(関数(値、指数、自己){
戻りvalue.length> 3;
})
はconsole.log(A)。//真
// DEMO2:
VARのARR = [ "トム"、 "ABC"、 "ジャック"、 "ルーシー"、 "リリー"、 "月"];
VaRのA = arr.some(関数(値、指数、自己){
戻りvalue.length> 4;
})
はconsole.log(A)。//偽
3.14は、一方の端部が横断する配列の最初の項目の開始から)(アレイのすべての反復を低減し、最終的な値が返される構築します。低減()は、1つのまたは2つのパラメータを受け取る:最初のものは、アレイのそれぞれに示されたコールバック関数呼び出しであり、二番目のパラメータ(オプション)マージの初期値として、コールバック関数は、最初に実行中に最初のパラメータを受け取ります。
削減(コールバック、初期);コールバックのデフォルトは、次の4つのパラメータ、すなわち前の、今、インデックス、自己を持っています。
任意の値は、実行時の下のコールバックパラメータとして返されます。
初期パラメータが省略された場合、最初の反復は、このように最初のパラメータが第1のアレイへのコールバックであり、第二のアレイで発生し、2番目のパラメータは、配列の2番目の項目です。
// DEMO1:NO初期パラメータが省略されていない、コールバック関数が値戻らない
VARのARR = [10,20,30,40,50]を、
arr.reduce(関数(PREV、今、指数、自己){
にconsole.log(PREV + " - " +今+ " - " +インデックス+ " - " +(編曲:==セルフ))
}、2019)
//印刷結果:
// 2019--10--0 - trueに
//未定義- 20--1 - trueに
30--2 - -未定義// trueに
//未定義- 40--3 - trueに
50--4 - -未定義// trueに
今回//コールバック関数はPREVが定義されていない取得するには、それが第二から始まり、戻らない
初期パラメータが省略され、コールバック関数が値を返しません:// DEMO2
; ARR = VAR [10,20,30,40,50]
arr.reduceを(関数(PREV、今、指数、自己){
にconsole.log(PREV + " - "今+ + " - " +インデックス+ " - " +(ARR ==自己))
})
//以下のような結果を印刷する:最初、コールバック関数への最初の引数は、配列内の最初の項目です。第2のパラメータは、第二の配列である
真の- // 10--20--1
30--2 - - trueに未定義//
40--3 - - trueに未定義//
undefined- // -50--4は- trueに
ノーリターンコールバック関数この場合、//、それは前に定義されていない取得するには、第二から始まる
// Demo3:初期パラメータが省略されていない、コールバック関数を返す
のvar ARR = [10、 20,30,40,50];
arr.reduce(関数(PREV、今、指数、自己){
にconsole.log(PREV + " - "今+ + " - " +インデックス+ " - " +(自己== ARR));
リターン"こんにちは";
}、2019)
//印刷結果:
// 2019--10--0 - trueに
20--1 - -こんにちは// trueに
// Hello- -30--2 - trueに
40--3 - -こんにちは// trueに
//こんにちは- 50--4 - trueに
//コールバック関数この時点でリターンがあるので、第二から始め、前には、コールバック関数の戻り値を得ました
初期パラメータが省略され、コールバック関数を返す:// demo4
するvar ARR = [10,20,30,40は、 、50];
arr.reduce(関数(PREV、今、指数、自己){
にconsole.log(PREV + " - "今+ + " - " +インデックス+ " - " +(ARR ==自己) );
リターン「こんにちは」;
})
//印刷結果は:まず、コールバック関数の最初の引数は、配列内の最初の項目です。二番目のパラメータは、第二の配列で
trueに- 10--20--1 //
30--2 - - trueにこんにちは//
trueに- 40--3 -こんにちは//
// Hello- -50--4 - trueに
この時点で、第2から出発して、前に取得するためのコールバック関数の値となるように、コールバック関数の戻り値がある//リターン
// demo5:すべてのデータとの配列使って計算を軽減
するvar ARRを= [10,20,30,40,50];
VAR arr.reduce = SUM(関数(PREV、今、指数、自己){
今PREV +を返します。
console.log(SUM); 150 //
最後に、コールバック関数の結果を返す//減らす方法の身体に戻される
// demo6:計算を減らすすべてのデータのアレイ使用
するvar ARR = [10,20,30,40,50];
VAR = SUMのARRを。 REDUCE(関数(PREV、今、指数、自己){
今PREV +を返す;
} ,. 8)
はconsole.log(SUM)は、158回の//
//最後のコールバックが身体を低減するために戻される方法の結果を返します
/ / 2番目のパラメータは、初期減らす、最初の実行で計算され、最終結果は、8を添加します