javascript対象技術基礎(二)


配列については、オブジェクトは無秩序データの集合であり、配列は秩序データの集合であり、配列中のデータ(要素)はインデックス(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