配列配列
1。はじめに
配列は、順序付けられた値のコレクションです。各値は要素と呼ばれ、各要素はアレイ内に位置を持ち、インデックスと呼ばれる数字で表されます。 JavaScriptアレイはタイプのものではありません。配列要素は任意のタイプであり、同じ配列の異なる要素も異なるタイプを持つ場合があります。 - 「JavaScriptの権威あるガイド(第6版)」
2。定義
コードコピーは次のとおりです。
var names = new Array( "Zhang San"、 "li si"、 "wang wu");
//または
var names = ["Zhang San"、 "li si"、 "wang wu"];
3。プロパティ
長さ:配列内の要素の長さを表します。
4。例メソッド
一般的な方法:
1)unshift():配列の頭に要素を挿入します
2)Shift():配列の最初の要素を削除して返します
3)push():配列の最後に要素を挿入します
4)pop():配列の最後の要素を削除して返します
4.1 concat():要素を配列に接続します。元の配列は変更されず、新しい配列が返されます。
パラメーター:
balue1、value2 ... valuen:任意の数の値
返品値:
{配列}元の配列と新しく追加された要素を含む新しい配列。
例:
コードコピーは次のとおりです。
var demoarray = ['a'、 'b'、 'c'];
var demoarray2 = demoarray.concat( 'e');
console.log(demoarray); // => demoarray:['a'、 'b'、 'c']元の配列は変更されません
console.log(demoarray2); // => ['a'、 'b'、 'c'、 'e']
4.2 every():各要素が真であるかどうかを判断するために、要素を順番に通過します
パラメーター:
①関数(value、index、self){}:各要素は、この関数を使用して、それが真であるかどうかを判断します。 1つが偽であると判断されると、トラバーサルはすぐに終了します。
値:アレイトラバーサルの要素
インデックス:要素番号
自己:配列自体
返品値:
{boolean}:各要素がtrueの場合にのみtrueを返します。 falseの場合は、falseを返します。
例:
コードコピーは次のとおりです。
var demoarray = [1、2、3];
var rs = demoArray.envery(function(value、index、self){
戻り値> 0;
});
console.log(rs); // => true
4.3フィルター():要素を順番に通過し、基準を満たす要素を含む新しい配列を返します。
パラメーター:
①関数(値、index、self){}:各要素はこの関数を順番に呼び出し、基準を満たす要素を含む新しい配列を返します。
値:アレイトラバーサルの要素
インデックス:要素番号
自己:配列自体
返品値:
{配列}基準に一致する要素を含む新しい配列
例:
コードコピーは次のとおりです。
var demoarray = [1、2、3];
var rs = demoarray.filter(function(value、index、self){
戻り値> 0;
});
console.log(rs); // => [1、2、3]
4.4 foreach():指定された関数を順番にトラバースし、実行します。返品値はありません。
パラメーター:
①関数(value、index、self){}:各要素はこの関数を順番に呼び出します
値:アレイトラバーサルの要素
インデックス:要素番号
自己:配列自体
返品値:なし
例:
コードコピーは次のとおりです。
var demoarray = [1、2、3];
demoarray.foreach(function(value、index、self){
console.log(value); // =>順番の出力:1 2 3
});
4.5 indexof():配列内の一致する要素を見つけます。一致する要素が存在しない場合、-1を返します。検索時に「===」オペレーターを使用するため、1と「1」を区別する必要があります。
パラメーター:
Value:配列にある値。
Start:検索を開始するシリアル番号の位置は、省略された場合、0です。
返品値:
{int}:配列の最初の一致する値を返します。存在しない場合は、-1を返します
例:
コードコピーは次のとおりです。
['a'、 'b'、 'c']。indexof( 'a'); // => 0
['a'、 'b'、 'c']。indexof( 'a'、1); // => - 1
['a'、 'b'、 'c']。indexof( 'd'); // => - 1
[1、2、3] .indexof( '1'); // => -1:使用される '==='マッチング方法
4.6 Join():配列内のすべての要素を区切り文字を介して文字列にスプライスします。
パラメーター:
sparator {string}:各要素間のセパレーター。省略すると、デフォルトでは英語のコンマ「)によって区切られます。
返品値:
{文字列}:セパレータとしての宇宙子を備えた各要素によってスプライスされた文字列。
例:
コードコピーは次のとおりです。
['a'、 'b'、 'c']。join(); // => 'a、b、c'
['a'、 'b'、 'c']。join( ' - '); // => 'ab-c'
4.7 lastIndexof:配列内の一致する要素を逆方向に検索します。一致する要素が存在しない場合、-1を返します。検索時に「===」オペレーターを使用するため、1と「1」を区別する必要があります。
パラメーター:
Value:配列にある値。
Start:検索を開始するシーケンス番号の位置。省略した場合は、最後の要素から検索を開始します。
返品値:
{int}:アレイの最初の一致する値を右から左に見つけ始めます。存在しない場合は、-1を返します
例:
コードコピーは次のとおりです。
['a'、 'b'、 'c']。lastindexof( 'a'); // => 0
['a'、 'b'、 'c']。lastindexof( 'a'、1); // => 0
['a'、 'b'、 'c']。lastindexof( 'd'); // => -1
[1、2、3] .lastindexof( '1'); // => -1:使用される '==='マッチング方法
4.8 Map():各要素をシーケンスで反復して計算し、計算された要素の配列を返します
パラメーター:
①関数(value、index、self){}:各要素はこの関数を呼び出して計算された要素を返します
値:アレイトラバーサルの要素
インデックス:要素番号
自己:配列自体
返品値:
{array}良好な要素さえも含む新しい配列
例:
コードコピーは次のとおりです。
[1、2、3] .map(function(value、index、self){
return値 * 2;
}); // => [2、4、6]
4.9 pop():配列の最後の要素を削除して返します
パラメーター:なし
返品値:
{オブジェクト}配列の最後の要素。配列が空の場合は、未定義の返品を返します
例:
コードコピーは次のとおりです。
var demoarray = ['a'、 'b'、 'c'];
demoarray.pop(); // => c
demoarray.pop(); // => b
demoarray.pop(); // => a
demoarray.pop(); // =>未定義
4.10 push():配列の最後に要素を追加します
パラメーター:
balue1、value2 ... valuen:配列の最後に任意の数の値を追加します
返品値:
{int}配列の新しい長さ
例:
コードコピーは次のとおりです。
var demoarray = ['a'、 'b'、 'c'];
demoarray.push( 'd'); // => 4、デモアレイ:['a'、 'b'、 'c'、 'd']
demoarray.push( 'e'、 'f'); // => 6、デモアレイ:['a'、 'b'、 'c'、 'd'、 'e'、 'f']
console.log(demoarray); // => ['a'、 'b'、 'c'、 'd'、 'e'、 'f']]
4.11 Reverse():配列要素の順序を反転します。
パラメーター:なし
戻り値:なし(元の配列で要素を反転させる)。
例:
コードコピーは次のとおりです。
var demoarray = ['a'、 'b'、 'c'、 'd'、 'e'];
demoarray.Reverse();
console.log(demoarray); // => ["e"、 "d"、 "c"、 "b"、 "a"]]
4.12 Shift():配列の最初の要素を削除して返します
パラメーター:なし
返品値:
{オブジェクト}配列の最初の要素。配列が空の場合、未定義が返されます。
例:
コードコピーは次のとおりです。
var demoarray = ['a'、 'b'、 'c'];
demoarray.shift(); // => a
demoarray.shift(); // => b
demoarray.shift(); // => c
demoarray.shift(); // =>未定義
4.13スライス(startindex、endindex):配列の一部を返します。
パラメーター:
startindex:最初のシーケンス番号。それが負の数である場合、それは計算が終了から始まることを意味し、-1は最後の要素を表し、-2は最後の2番目の要素などです。
dendindex:最後の要素の最後のシーケンス番号は、指定されていない場合、終了は終了です。インターセプトされた要素には、ここにシーケンス番号がある要素が含まれておらず、エンディングはここでシーケンス番号を持つ以前の要素です。
返品値:
{array} startindexからendindexの前の要素までのすべての要素を含む新しい配列。
例:
コードコピーは次のとおりです。
[1、2、3、4、5、6] .slice(); // => [1、2、3、4、5、6]
[1、2、3、4、5、6] .Slice(1); // => [2、3、4、5、6]:シリアル番号1から始まる
[1、2、3、4、5、6] .Slice(0、4); // => [1、2、3、4]:シリアル番号0の要素をシリアル番号3(シリアル番号4の以前の要素)に傍受する
[1、2、3、4、5、6] .Slice(-2); // => [5、6]:次の2つの要素をインターセプトします
4.14 sort(opt_orderfunc):特定のルールに従って並べ替えます
パラメーター:
①opt_orderfunc(v1、v2){function}:オプションのソートルール関数。省略した場合、要素の文字は小さいから大きく分類されます。
V1:前の要素が通過します。
V2:次の要素が通過しています。
ソートルール:
V1とV2を比較し、V1とV2のソートルールを表すために数値を返します。
0未満:V1はV2未満、V1はV2よりも先です。
0に等しい:V1はV2に等しく、V1はV2よりも先です。
0を超える:V1はV2より大きく、V1はV2の背後にあります。
返品値:なし(元の配列で操作を並べ替える)。
例:
コードコピーは次のとおりです。
[1、3、5、2、4、11、22] .sort(); // => [1、11、2、22、3、4、5]:すべての要素は文字に変換され、11の文字は2の前にあります
[1、3、5、2、4、11、22] .sort(function(v1、v2){
V1 -V2を返します。
}); // => [1、2、3、4、5、11、22]:小さいものから大規模にソート
[1、3、5、2、4、11、22] .sort(function(v1、v2){
return-(v1 -v2); //逆、あなたは大部分から小さく変換できます
}); // => [22、11、5、4、3、2、1]
4.15 Splice():配列要素を挿入して削除します
パラメーター:
start {int}:開始シーケンス番号。挿入、削除、または交換を開始します。
deletecount {int}:削除する要素の数、開始から計算を開始します。
balue1、value2 ... Valuen {Object}:オプションのパラメーター、挿入する要素を示し、最初から挿入し始めます。パラメーター②が0でない場合は、最初に削除操作を実行し、挿入操作を実行します。
返品値:
{array}削除された要素を含む新しい配列を返します。パラメーター②が0の場合、要素が削除されず、空の配列が返されることを意味します。
例:
コードコピーは次のとおりです。
// 1。削除
var demoarray = ['a'、 'b'、 'c'、 'd'、 'e'];
var demoarray2 = demoarray.splice(0、2); //シーケンス番号から0から始まる2つの要素を削除し、削除された要素を含む配列を返します:['a'、 'b']
console.log(demoarray2); // => ['A'、 'B']
console.log(demoarray); // => ['c'、 'd'、 'e']
// 2。挿入
var demoarray = ['a'、 'b'、 'c'、 'd'、 'e'];
var demoarray2 = demoarray.splice(0、0、 '1'、 '2'、 '3'); // parameterパラメーターは0です、空の配列を返します
console.log(demoarray2); // => []
console.log(demoarray); // => ['1'、 '2'、 '3'、 'a'、 'b'、 'c'、 'd'、 'e']
// 3。最初に削除してから挿入します
var demoarray = ['a'、 'b'、 'c'、 'd'、 'e'];
//②パラメーターが0でない場合は、最初に削除操作を実行します(0から始まるシーケンス番号の4つの要素を削除し、削除された要素を含む配列を返してから挿入操作を実行します
var demoarray2 = demoarray.splice(0、4、 '1'、 '2'、 '3');
console.log(demoarray2); // => ['a'、 'b'、 'c'、 'd']
console.log(demoarray); // => ['1'、 '2'、 '3'、 'a'、 'b'、 'c'、 'd'、 'e']
4.16 toString():アレイ内のすべての要素を、英語のコンマ 'を介して文字列に縫い付けます。
パラメーター:なし
返品値:
{文字列}配列内のすべての要素は、英語のコンマ 'によって文字列にスプライスされ、返されます。同じことは、パラメーターなしでjoin()メソッドを呼び出すことです。
例:
コードコピーは次のとおりです。
[1、2、3、4、5] .toString(); // => '1,2,3,4,5'
['a'、 'b'、 'c'、 'd'、 'e']。toString(); // => 'a、b、c、d、e'
4.17 Unshift():配列のヘッドに要素を挿入します
パラメーター:
balue1、value2 ... valuen:配列のヘッダーに任意の数の値を追加します
返品値:
{int}配列の新しい長さ
例:
コードコピーは次のとおりです。
var demoarray = [];
demoarray.unshift( 'a'); // =>デモアレイ:['A']
demoarray.unshift( 'b'); // => demoarray:['b'、 'a']
demoarray.unshift( 'c'); // => demoarray:['c'、 'b'、 'a']
demoarray.unshift( 'd'); // => demoarray:['d'、 'c'、 'b'、 'a']
demoarray.unshift( 'e'); // => demoarray:['e'、 'd'、 'c'、 'b'、 'a']
5。静的メソッド
5.1 array.isarray():オブジェクトが配列であるかどうかを判断します
パラメーター:
①Value{オブジェクト}:任意のオブジェクト
返品値:
{boolean}判断結果を返します。本当の場合、それはオブジェクトが配列であることを意味します。 falseの場合、それはオブジェクトが配列ではないことを意味します
例:
コードコピーは次のとおりです。
array.isarray([]); // => true
array.isarray(['a'、 'b'、 'c']); // => true
array.isarray( 'a'); // => false
array.isarray( '[1、2、3]'); // => false
6。実践的な操作
6.1インデックス
説明:各要素には、インデックスと呼ばれる数字で表される配列に位置があります。インデックスは0から始まります。つまり、最初の要素のインデックスは0、2番目の要素のインデックスは1などです。
配列に存在しないインデックスを取得すると、未定義が返されます。
例:
コードコピーは次のとおりです。
var demoarray = ['a'、 'b'、 'c'、 'd'、 'e'];
デモアレイ[0]; // =>最初の要素を取得: 'a'
デモアレイ[0] = 1; //最初の要素を1に設定します
console.log(demoarray); // => demoarray:[1、 'b'、 'c'、 'd'、 'e']
console.log(demoarray [9]); // =>未定義:取得したインデックスが存在しないときに未定義を返す
声明については6.2
注:ステートメントを通じて配列を1つずつ通過できます
例:
コードコピーは次のとおりです。
var demoarray = ['a'、 'b'、 'c'、 'd'、 'e'];
for(var i = 0、length = demoarray.length; i <length; i ++){
console.log(demoarray [i]); // =>配列内の出力要素が1つずつ
}
6.3浅いコピー
注:配列タイプは参照タイプです。配列Aが配列Bにコピーされると、ARRAY Bに要素の変更が行われ、配列Aも変更されます。
例:
コードコピーは次のとおりです。
var demoarraya = ['a'、 'b'、 'c'、 'd'、 'e'];
var demoarrayb = demoarraya; //配列aを配列bに割り当てます
demoarrayb [0] = 1; //配列の要素を変更b
console.log(demoarraya); // => [1、 'b'、 'c'、 'd'、 'e']:配列aの要素も変更されました
6.4ディープコピー
注:concat()メソッドを使用して、新しい配列を返します。浅いコピーを防ぎ、配列Bで要素変更操作を実行し、アレイAは変更されません。
例:
コードコピーは次のとおりです。
var demoarraya = ['a'、 'b'、 'c'、 'd'、 'e'];
var demoarrayb = demoarraya.concat(); // concat()メソッドを使用して、新しい配列を返します
demoarrayb [0] = 1; //配列の要素を変更b
console.log(demoarraya); // => ['a'、 'b'、 'c'、 'd'、 'e']:配列aの要素は変更されていません
console.log(demoarrayb); // => [1、 'b'、 'c'、 'd'、 'e']:配列bの要素が変更されました