javascript対象技術基礎(二)
2938 ワード
配列については、オブジェクトは無秩序データの集合であり、配列は秩序データの集合であり、配列中のデータ(要素)はインデックス(0から始まる)によってアクセスされ、配列中のデータは任意のデータタイプであってもよい.配列自体は依然として対象であるが、配列の多くの特性のため、配列とオブジェクトを区別して扱います.(Througuhot thisbobook、oojecs and arrayse e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e uth:an array is nothing more than an object with a thin layer of extra functionlity.You can see this with the typeof operator:appied to an array value,it returns the string“object”. --section 7.5.配列を作成するには、[]オペレータ、またはAray()構造関数でnew一つを使用することができます.
var array1 = []; //
var array2 = new Array(); //
array1 = [1,"s",[3,4],{"name1":"NAME1"}]; //
alert(array1[2][1]); //4
alert(array1[3].name1); //NAME1
alert(array1[8]); //undefined
array2 = [,,]; // , undefined
alert(array2.length); //3
alert(array2[1]); //undefined
new Arayで()を選択して配列を作成する場合、デフォルトのサイズを指定できます.この値はundefinedで、後で彼らに値を割り当てることができます.しかし、javascriptの配列の長さは任意に変えられます.配列の内容も任意に変えられます.この初期化の長さは実際には配列に対して何の制約もありません.配列に対しては、これを超える場合は、最も高い値になります.長いインデックスの値は、配列の長さを変更します.同時に、値なしのインデックスにundefinedを割り当てます.次の例を見てください.var array = new Array(10);
alert(array.length); //10
alert(array[4]); //undefined
array[100] = "100th"; // , 10-99 undefined
alert(array.length); //101
alert(array[87]); //undefined
delete操作子で配列の要素を削除できます.この削除は単に位置に配列された要素をundefinedとするだけで、配列の長さは変化していません.私たちはすでに行列のlength属性を使っています.length属性は読み取り/書き込みができる属性です.つまり、配列のlength属性を変えることによって、配列の長さを任意に変えられます.配列長より小さい値の場合、元の配列のインデックスがlength-1より大きい値は削除されます.lengthの値が元の配列の長さよりも大きい場合、それらの間の値はundefinedとして設定されます.var array = new Array("n1","n2","n3","n4","n5"); //
var astring = "";
for(var i=0; i<array.length; i++) { //
astring += array[i];
}
alert(astring); //n1n2n3n4n5
delete array[3]; //
alert(array.length + "_" + array[3]) //5_undefined
array.length = 3; //
alert(array[3]); //undefined
array.length = 8; //
alert(array[4]); //undefined
配列の他の方法については、ジョイン/reverseなど、ここでは例を挙げません.上記の説明により、オブジェクトの属性値は属性の名前(文字列タイプ)によって取得され、配列の要素は索引(整数型0~2*32-1)によって得られます.配列自体もオブジェクトであることが分かりましたので、オブジェクト属性の操作も配列にぴったりです.var array = new Array("no1","no2");
array["po"] = "props1";
alert(array.length); //2
// ,array[0] array["0"] (? , )
alert(array[0] + "_" + array["1"] + "_" + array.po);//no1_no2_props1