javascript Aray学習と使用
9562 ワード
一.Javascript配列は無タイプです.配列要素は任意の種類があり、同じ配列の異なる要素も異なるタイプがあり、javascript配列はダイナミックであり、必要に応じて成長または縮小され、各配列にはlength属性があります.読み取り専用ではありません.この属性値を設定することで、配列の最後から項目を削除するか、新しい項目を追加できます.
二.配列の作成
(1)配列字面量表示方法:
Var colors=[true,1,"green]3文字列を含む配列を作成します.
Var arr=[]//空の配列を作成
Var b=[1、{x:1,y:2},[2,{x:3,y:4}]オブジェクトを含む直接量または他の配列の直接量を作成します.
(2)構造関数Aray()を呼び出し、new操作子は省略できます.
Var a=new Aray()Var arr=[]//空の配列を作成
Var b=new Aray(10)//指定された長さの配列を作成します.
Var c=new Aray(「red」)//1つの項目と文字列「red」を含む配列を作成します.
三.配列要素の読み書き
配列値の読み取りと設定には、大かっこ、大かっこのいずれかを使用します.
Var colors=[red]「blue」「green」文字列配列を定義する
alert(colors[0])//最初の項目の値を読みだします.
colors[2]="black"第三項を修正する
colors[3]=“brown”;/第四項追加
Alert(colors.length)//4、配列の長さ値は、最後の項目の索引に1を加えます.
四.配列要素の検出
Aray.isAray()方法は、どのグローバル実行環境で作成されたかに関わらず、ある値が配列であるかを検出する.If(Aray.isAray){/配列に対していくつかの動作を実行する}
五.配列方法:
(1)Aray.join()配列内のすべての要素を文字列に変換し、最後に生成された文字列を返します.
Push()方法は、任意の数のパラメータを受信して、配列の最後に彼らを追加し、配列の新しい長さを変更します.pop()方法は反対で、配列の最後の項目を削除して、配列の長さを減らして、最後に削除された項目を返します.
Shift()は、配列の中の1つの項目を除去し、この項を返し、その後、すべての後続の要素を1つの位置に下に移動して、配列のヘッダーの空きを埋めることができ、配列の長さを1つ減らす.unshift()は、配列の先端に任意の項目を追加し、存在する要素をより高いインデックスの位置に移動させて十分な空間を得て、最後に新しい配列の長さを返します.
すべてのオブジェクトは、toLocale String()、toString()、valueOf()を持っています.
配列を呼び出したtoString()メソッドは、コンマで区切られた文字列である配列内の各値の文字列でスティッチングされた文字列を返します.join()メソッドにパラメータがない場合、返した文字列と同じ効果です.
配列のvalueOf()メソッドを呼び出します.戻りは行列ですか?
配列のtoLocareStering()を呼び出し、配列をローカル文字列に変換します.
ES 5は、配列全体に所与の値を持つ要素を検索するために使用される2つの位置方法、indexOf()、lastIndexOf()の2つの位置を追加し、見つけられた最初の要素のインデックスを返します.または見つからなかったら-1に戻り、2つのパラメータを受信します.最初のパラメータは検索対象の項目で、2番目のパラメータはオプションで、検索開始点位置のインデックス、indexOf(indexOf)を表します.方法は配列の先頭から後方へ検索します.lastIndexOf()は配列の最後から前へ検索します.
ES 5は配列のために5つの反復方法を定義し、各方法は2つのパラメータを受信し、一つのパラメータは各項目で実行する関数であり、二つ目のパラメータはオプションであり、関数の作用領域オブジェクトを実行する.最初のパラメータに対しては、この関数は3つのパラメータ、配列項目の値を受け取ります.この項目は配列内の位置、および配列オブジェクト自体です.
1)forEach()は最初から最後まで配列を巡回して、各要素のために指定された関数を呼び出します.この方法は戻り値がなく、すべての要素が呼び出された関数に伝達されなければなりません.つまり、break文がないならいつでもこのサイクルを終了します.
ES 5に追加された配列方法であり、指定された関数で配列要素を統合します.
1)reduce()は、配列の最初の項目から、一つ一つ最後まで巡回します.
2)reduceRight()は、配列の最後の項目から、前へ遍歴する最初の項目です.
これらの2つの方法はいずれも2つのパラメータを受信し、1つは各項目で呼び出された関数と(オプションの)帰納ベースの初期値として、reduce()とreduceRight()の関数に4つのパラメータを受信します.前の値、現在の値、項目のインデックスと配列オブジェクトです.この関数が返したどの値も最初のパラメータとして次の項目に自動的に渡されます.最初の反復は配列の第二項に発生します.したがって、最初のパラメータは配列の第一項で、第二のパラメータは配列の第二項です.
二.配列の作成
(1)配列字面量表示方法:
Var colors=[true,1,"green]3文字列を含む配列を作成します.
Var arr=[]//空の配列を作成
Var b=[1、{x:1,y:2},[2,{x:3,y:4}]オブジェクトを含む直接量または他の配列の直接量を作成します.
(2)構造関数Aray()を呼び出し、new操作子は省略できます.
Var a=new Aray()Var arr=[]//空の配列を作成
Var b=new Aray(10)//指定された長さの配列を作成します.
Var c=new Aray(「red」)//1つの項目と文字列「red」を含む配列を作成します.
三.配列要素の読み書き
配列値の読み取りと設定には、大かっこ、大かっこのいずれかを使用します.
Var colors=[red]「blue」「green」文字列配列を定義する
alert(colors[0])//最初の項目の値を読みだします.
colors[2]="black"第三項を修正する
colors[3]=“brown”;/第四項追加
Alert(colors.length)//4、配列の長さ値は、最後の項目の索引に1を加えます.
四.配列要素の検出
Aray.isAray()方法は、どのグローバル実行環境で作成されたかに関わらず、ある値が配列であるかを検出する.If(Aray.isAray){/配列に対していくつかの動作を実行する}
五.配列方法:
(1)Aray.join()配列内のすべての要素を文字列に変換し、最後に生成された文字列を返します.
<script>
var a=[1,2,3,4];
document.body.innerHTML='<b>'+a.join()+'</b>'+'</br>';//1,2,3,4
document.write('<b>'+typeof(a.join(' '))+'</b>'+'</br>');//string
document.write('<b>'+a.join(' ')+'</b>'+'</br>');//1 2 3 4
document.write('<b>'+a.join('-')+'</b>');//1-2-3-4
</script>
(2)Aray.reverse()は、配列中の要素を逆順にして、逆順の配列を返します. var a=[1,2,3,4];
document.write('<b>'+a.reverse().join("*")+'</b>');//4*3*2*1
(3)Aray.sort()は、デフォルトではパラメータがない場合は配列要素をアルファベット順に並べ替え、ある規定に従って並べ替えると、比較関数を伝えなければなりません. var b=["22","555","44","1"];
document.write('<b>'+b.sort()+'</b>'+'</br>');//1,22,44,555
var c=["2","555","44","11"];
document.write('<b>'+c.sort(function(a,b){ return a-b})+'</b>'+'</br>');//2,11,44,555
(3)Aray.co ncat()を作成し、新しい配列を返します.その要素はcontact()の元の配列を呼び出す要素とconcat()の各パラメータを含む. var d=["2","5","4","1"];
document.write('<b>'+d.concat(6,8)+'</b>'+'</br>');//2,5,4,1,6,8
(4)Aray.slice()方法は、配列の1つのセグメントまたはサブアレイを返し、その2つのパラメータはそれぞれセグメントの開始と終了を指定し、戻る配列は、最初のパラメータで指定された位置と、第2のパラメータで指定されていない位置との間のすべての配列要素を含み、1つのパラメータだけがある場合、このパラメータから配列の最後までのすべての要素を返します. var e=["2","5","4","1"];
document.write('<b>'+e.slice(1,3)+'</b>'+'</br>');//5,4
var f=["2","5","4","1"];
document.write('<b>'+f.slice(2)+'</b>'+'</br>'+'<hr>');//4,1
(5)スタック方法Push()方法は、任意の数のパラメータを受信して、配列の最後に彼らを追加し、配列の新しい長さを変更します.pop()方法は反対で、配列の最後の項目を削除して、配列の長さを減らして、最後に削除された項目を返します.
var g=["red","yellow","blue"];
document.write('<b>'+" :"+g.push("green","pink")+'</b>'+'</br>');
// :5
document.write('<b>'+" :"+g.pop()+'</b>'+'</br>'+'<hr>');// :pink
(6)キューのような方法Shift()は、配列の中の1つの項目を除去し、この項を返し、その後、すべての後続の要素を1つの位置に下に移動して、配列のヘッダーの空きを埋めることができ、配列の長さを1つ減らす.unshift()は、配列の先端に任意の項目を追加し、存在する要素をより高いインデックスの位置に移動させて十分な空間を得て、最後に新しい配列の長さを返します.
var e=["red","yellow","blue"];
document.write('<b>'+" :"+e.shift()+'</b>'+'</br>');// :red
document.write('<b>'+" , :"+e.unshift("red","black")+'</b>'+'</br>'+'<hr>');// , :4
(7)変換方法すべてのオブジェクトは、toLocale String()、toString()、valueOf()を持っています.
配列を呼び出したtoString()メソッドは、コンマで区切られた文字列である配列内の各値の文字列でスティッチングされた文字列を返します.join()メソッドにパラメータがない場合、返した文字列と同じ効果です.
配列のvalueOf()メソッドを呼び出します.戻りは行列ですか?
配列のtoLocareStering()を呼び出し、配列をローカル文字列に変換します.
var f=["red","yellow","blue"];
document.write('<b>'+" :"+typeof(f)+'</b>'+'</br>');
// :object
document.write('<b>'+f.toString()+'</b>'+'</br>');//red,yellow,blue
document.write('<b>'+" toString :"+typeof(f.toString())+'</b>'+'</br>');// toString :string
document.write('<b>'+f.valueOf()+'</b>'+'</br>');//red,yellow,blue
document.write('<b>'+" valueOf() :"+typeof(f.valueOf())+'</b>'+'</br>'+'<hr>');// valueOf() :object
(7)位置方法ES 5は、配列全体に所与の値を持つ要素を検索するために使用される2つの位置方法、indexOf()、lastIndexOf()の2つの位置を追加し、見つけられた最初の要素のインデックスを返します.または見つからなかったら-1に戻り、2つのパラメータを受信します.最初のパラメータは検索対象の項目で、2番目のパラメータはオプションで、検索開始点位置のインデックス、indexOf(indexOf)を表します.方法は配列の先頭から後方へ検索します.lastIndexOf()は配列の最後から前へ検索します.
var h=["red","yellow","blue","red"];
document.write('<b>'+"red :"+h.indexOf("red")+'</b>'+'</br>');
//red :0
document.write('<b>'+" 1 blue :"+h.indexOf("blue",1)+'</b>'+'</br>');// 1 blue :2
document.write('<b>'+" ,lastindexOf(),red :"+h.lastIndexOf("red")+'</b>'+'</br>'+'<hr>');// ,lastindexOf(),red :3
(8)反復方法ES 5は配列のために5つの反復方法を定義し、各方法は2つのパラメータを受信し、一つのパラメータは各項目で実行する関数であり、二つ目のパラメータはオプションであり、関数の作用領域オブジェクトを実行する.最初のパラメータに対しては、この関数は3つのパラメータ、配列項目の値を受け取ります.この項目は配列内の位置、および配列オブジェクト自体です.
1)forEach()は最初から最後まで配列を巡回して、各要素のために指定された関数を呼び出します.この方法は戻り値がなく、すべての要素が呼び出された関数に伝達されなければなりません.つまり、break文がないならいつでもこのサイクルを終了します.
var data=[1,2,3,4,5];
var sum=0;
data.forEach(function(value){sum+=value;});
document.write('<b>'+"sum :"+sum+'</b>'+'</br>');//sum :15
data.forEach(function(v,i,data){data[i]=v+3;});
document.write('<b>'+"data :"+data+'</b>'+'</br>'+'<hr>');
//data :4,5,6,7,8
2)map()は、配列内の各項目に対して与えられた関数を実行し、各関数が呼び出した結果の配列を返します.map()は、新しい配列を返します.呼び出した配列は変更されません. var data2=[1,2,3,4,5];
var sum=0;
data=data2.map(function(x){return sum+=x});
document.write('<b>'+" :"+data2+'</b>'+'</br>');// :1,2,3,4,5
document.write('<b>'+"sum :"+sum+'</b>'+'</br>');// :15
document.write('<b>'+" :"+data+'</b>'+'</br>'+'<hr>');// :1,3,6,10,15
3)filter()は、論理判定のために使用される関数であり、true、またはfalseに戻り、返ってくる配列要素は関数であり、trueの項の配列のサブセットに戻り、空席を圧縮し、undefinedとnull要素を削除して、filter()を使用することができる. var data3=[1,2,3,4,5];
data33=data3.filter(function(x){return x<3;});
document.write('<b>'+" :"+data33+'</b>'+'</br>');// :1,2
data333=data3.filter(function(x){return x%2==0;});
document.write('<b>'+" :"+data333+'</b>'+'</br>'+'<hr>');// :2,4
4)everry()とsome()は、配列の論理判定であり、配列中の各動作に与えられた関数に対してevery()は、配列中の各要素だけが関数を満たしてtrueに戻ります.そして、some()は要求だけで、満足する項目があればtrueに戻り、数学中の論理式と同じ値を求めます. var data4=[1,2,3,4,5];
data44=data4.every(function(x){return x<3;});
document.write('<b>'+" every() :"+data44+'</b>'+'</br>');// every() :false
data444=data4.some(function(x){return x<3});
document.write('<b>'+" some() :"+data444+'</b>'+'</br>'+'<hr>');// some() :true
(9)帰合方法ES 5に追加された配列方法であり、指定された関数で配列要素を統合します.
1)reduce()は、配列の最初の項目から、一つ一つ最後まで巡回します.
2)reduceRight()は、配列の最後の項目から、前へ遍歴する最初の項目です.
これらの2つの方法はいずれも2つのパラメータを受信し、1つは各項目で呼び出された関数と(オプションの)帰納ベースの初期値として、reduce()とreduceRight()の関数に4つのパラメータを受信します.前の値、現在の値、項目のインデックスと配列オブジェクトです.この関数が返したどの値も最初のパラメータとして次の項目に自動的に渡されます.最初の反復は配列の第二項に発生します.したがって、最初のパラメータは配列の第一項で、第二のパラメータは配列の第二項です.
var data5=[1,2,3,4,5];
var sum=data5.reduce(function(x,y){return x+y},0);
document.write('<b>'+"sum :"+sum+'</b>'+'</br>');//sum :15
var sum1=data5.reduce(function(x,y,index,data5){return x+y});
document.write('<b>'+"sum1 :"+sum1+'</b>'+'</br>');//sum1 :15
var sum2=data5.reduce(function(x,y,index,data5){return x*y},2);
document.write('<b>'+"sum1 :"+sum2+'</b>'+'</br>');//sum2 :240