JS—配列

巴扎黑
巴扎黑オリジナル
2016-12-06 11:20:021425ブラウズ

Array (配列オブジェクト)
配列はオブジェクトです。配列は、順序付けられた値のコレクションです。各値は要素 (任意のタイプ) と呼ばれ、各要素には配列内の位置があり、インデックス (0-232-2) と呼ばれる数値で表されます。
1. 配列を作成します
1. 配列リテラル (直接量) を使用します
var empty=[];//空の配列
var miss=[1.1,true,"a",[1,{x:1,y: 2}]];//要素の型が異なります
var count=[1,,2];//要素は 3 つあり、途中の省略された値は未定義です
var undefs=[,,];//要素は 2 つありますが、これも 3 つに解析されるため、これは行わないでください
2. コンストラクター Array() を呼び出します
var a=new Array();//パラメータなし、空の配列と同等
var a=new Array(10); //長さ 10 の配列を指定します
var a=new Array(10, 4, "hhhh"); // 配列要素を指定しますが、リテラルを使用することは適切ではありません。メソッドを直接使用する
2. 配列要素の読み取りと書き込み
var arr =[1,2,3,4,5];//配列の最初の要素 - 2
arr[5]=6 ;//最初の要素を動的に追加します (再定義する必要はありません) 5 つの要素 - 6
delete arr[0]; 最初の要素は削除されますが、配列の長さは 6 のままで、最初の要素は未定義です
3。スパース配列には、0 から始まる要素が含まれます。 不連続にインデックスが付けられた配列。一般に、length 属性の値は実際の要素数より大きくなります
var arr1=[unknown];
var arr2=new Array(1);//arr1 の var arr2=[,]; と同じです。 true を返します。インデックス 0
0 に要素があります。 arr2; // false を返します。インデックス 0 には要素がありません。 配列属性
length: arr1.length
5. 0;i6. 多次元配列
arr[][]

//多次元配列を作成します
var table=new Array(10);//テーブルには10 rows
for(var i=0;i< table.length;i++)
table[i]=new Array(10) //各行には 10 列があります
//配列を初期化します
for(var row=0) ;rowfor( varcol=0;coltable[row][col]=row*col
}
}
//複数を使用します。次元配列の計算
var product=table[5][7]; //結果は 35
Seven. Array メソッド




1.join()
配列内のすべての要素を文字列に変換し、それらを結合します。文字列を返す場合は、要素を区切るための区切り文字を指定できます。指定されていない場合は、デフォルトの「,」で区切られます。
var arr=[1,2,3];
arr.join();//”1,2,3”
arr.join(”_”);//”1_2_3”


2.reverse( )
配列内の要素の順序を反転し、反転した配列を返します。元の配列は変更されます
var arr=[1,2,3];//[3,2,1] ]




3.sort()
配列内の要素をソートし、ソートされた配列を返すと、元の配列が変更されます。要素が未定義の場合は、最後までソートされます
arr=["a","c","b"];//["a","b","c" "] このメソッドがパラメーターなしで呼び出された場合、要素はアルファベット順にソートされます

arr=[13,24,51,3];
arr.sort() ;//[13,24,3,51] Convert次に、文字列が比較され、各数値の最初の桁が小さい順に並べ替えられます

arr.sort(function(a,b){
return a-b;//順序に従って、[3,13] ,24,51]
})

arr.sort(function(a,b){
return b-a;//逆順, [51,24,13,3]
})



4.concat( )
配列をマージします。元の配列は変更されません

var arr=[1,2,3];
arr.concat(4,5);//[1,2,3,4,5]
arr。 concat([4,5],6) ;//[1,2,3,4,5,6] パラメータが配列の場合、配列はフラット化されます
arr.concat(4,[5,[6] ,7]]);//[1,2, 3,4,5,[6,7]] パラメーターが配列の場合、配列要素は依然として配列であり、配列は 2 回フラット化されません




5.slice()
指定された配列のフラグメントまたはサブ配列を返します。その 2 つのパラメーターはそれぞれセグメントの開始位置と終了位置を指定します。通常は、左が閉じた間隔、右が開いた間隔になります。変更されました

var arr=[1,2,3,4,5];
arr.slice(1, 3);//[2,3]
arr.slice(1);//[2,3, 4,5] にはパラメータが 1 つだけあり、このパラメータは開始位置とみなされ、終了位置は配列
arr の末尾になります。//[2,3,4] 負の数。配列内の最後の要素に対する相対的な位置を表し、-1 は要素 5 を表します
arr.slice(-4,-3);//[ 2]




6.splice()
要素の挿入または削除配列では、元の配列が変更されます

var arr=[1,2,3,4,5]
arr.splice(2);/ /[3,4,5] は 2 番目の位置から要素を削除します。最後

arr.splice(2,2);//[3,4] 2 番目のパラメータは削除された要素の数を示します。つまり、2 番目の位置から始まる 2 つの要素を削除します

arr.splice(1, 1,"a","b"); //[2] 先頭から 1 要素を削除し、ここに "a" と "a" を挿入します "b"
arr;//[1, "a"," b",3,4,5]



7.push() と Pop()
配列をスタックとして使用して、元の配列が変更されます。
push() は配列の末尾に 1 つ以上の要素を追加し、配列の新しい長さを返します。
pop() は配列の最後の要素を削除し、配列の長さを減らし、削除された値

var を返します。 stack=[];
stack.push(1,2);//配列の長さ2を返す
stack.pop();//末尾の削除された要素2を返す



8.unshift() () 配列の先頭に
unshift() 1 つ以上の要素を追加し、配列の新しい長さを返します。
shift() は配列の最初の要素を削除し、削除された値を返します

var arr=[];
arr.unshift(2);//配列の長さ 1 を返します
arr.unshift(22);//配列の長さ 2 を返します、この時点では arr=[22,2]
arr.shift();//先頭を削除した要素 22 を返します




9.toString() および toLocaleString()
toString() は配列を "," で区切られた文字列に変換します
toLocaleString() は配列を文字列に変換しますローカリゼーション区切り文字を使用します

[1,[2,"c"] ].toString()//Return "1,2,c"





8. ECMAScript5 の配列メソッド
ECMAScript5 は 9 つの新しい配列メソッドを定義しますArray

1.forEach()
Array の走査、マップ、フィルター、検出、簡素化、検索を行うには、パラメーターは関数です。この関数は、要素、インデックス、配列自体の 3 つのパラメーターを使用して呼び出すことができます。

var arr=[1,2,3,4,5];
var sum=0;
arr.forEach(function(value){
sum+=value; // 配列を走査し、各値を合計します
});
sum;//15

arr.forEach(function(v,I,a){ //要素、インデックス、配列自体の 3 つのパラメータを使用してこの関数を呼び出します
a[i]=v+1 ;
})



追記: このメソッドは for のようにトラバーサルを早期に終了できないため、try ブロックに入れてください。 }catch(e){
if(e==foreach.break)return;
else throw e;
}
foreach,break=new Error(“StopIteration”); 2.map()
配列マッピング、元の配列は変更されていません

var arr=[1,2,3]
arr.map(function(x){
return x+10;
});/ /return [11 ,12,13]



3.filter()
配列のフィルタリング、元の配列は変更されず、返される配列は常に密です

var arr=[1,2,3,4,5 ,6,7 ,8,9,10];
arr.filter(function(x,index){
returnindex%3==0||x>=8;
});//[1,4, 7,8, 9,10]

4.every() と some()
配列の論理判断、true または false を返し、返されるべき値が確認されると、配列の走査を停止します
every () は論理「AND」に相当します。すべての要素が判定関数を呼び出して true を返す場合にのみ true を返します。
some() は論理「OR」に相当します。少なくとも 1 つの要素が判定関数を呼び出して true を返す場合、 return true

var arr=[1,2,3,4 ,5];
arr.every(function(x){
return x});//true
arr.every(function(x) ){
return x});//false

var arr=[1,2,3,4,5];
arr.some(function(x){
return x==3;
});//true
arr.every(function(x) {
return x==10;
});//false

追記: 空の配列で呼び出された場合。 Every() は true を返し、some() は false を返します

5.reduce() と reduceRight()
指定された関数を使用して配列要素を結合し、単一の値を生成します。元の配列は変更されません
reduce() には 2 つの値があります1 つ目はリダクション操作を実行する関数です。2 つ目は関数に渡される初期値です。reducedRight() のリダクション操作は右から左へ行われます。残りは、reduce() と同じです。 var arr=[1 ,2,3];
var sum=arr.reduce(function(x,y){
return x+y;
},0);//つまり、左から右に 6 を返します。 0+1=1,1 +2=3, 3+3=6

var sum=arr.reduceRight(function(x,y){
return x+y;
});// 6 を返します、つまり、3+2= 右から左へ 5,5+1=6
6.indexOf() および lastIndexOf()
配列の取得、最初に見つかった要素のインデックスを返し、見つからない場合は -1 を返します
indexOf() の検索最初から最後まで
lastIndexOf() から開始します 前後方向に検索します

var arr=[1,2,3,2,1];
arr.indexOf(2);//要素 2 のインデックスを検索し、1 を返します
arr.indexOf(4);//要素 4 のインデックスは存在しないため、-1 を返します
arr.indexOf(1,1);//最初の位置から開始して要素 1 のインデックスを検索します、4を返します
arr.indexOf(1,-3);//要素 1 のインデックスを検索、下から 3 番目から開始、4 を返す
arr.lastIndexOf(2,-2);//要素 2 のインデックスを検索、開始下から3番目から 2桁で検索を開始し、後ろから前に検索し、3を返します


9。 配列型
Array.isArray([]);//true
Array.isArray({}); //false

[]instanceof Array;//true
({})instanceof Array;//false

({}).toString.apply([])===”[オブジェクト配列]”;//本当です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。