javascript配列操作(作成、要素削除、配列のコピー)

4623 ワード

1、配列の作成

var arrayObj = new Array(); //
var arrayObj = new Array([size]); // , ,
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 
説明するのは、第二の方法では、配列は長さを指定していますが、実際にはすべての場合、配列は長くなります。つまり、長さ5を指定しても、要素は所定の長さ以外に記憶されます。
2、配列の要素のアクセス

var testGetArrValue=arrayObj[1]; //
arrayObj[1]= " "; //
3、配列要素の追加

arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// ,
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// , ,
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);// , , ""。
4、配列要素の削除

arrayObj.pop(); //
arrayObj.shift(); // ,
arrayObj.splice(deletePos,deleteCount); // deletePos deleteCount ,
5、配列の切り取りとマージ

arrayObj.slice(start, [end]); // , end , end start
arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); // ( , ) ,
6、配列のコピー

arrayObj.slice(0); // , ,
arrayObj.concat(); // , ,
7、配列要素の並べ替え

arrayObj.reverse(); // ( 、 ),
arrayObj.sort(); // ,
8、配列要素の文字列化

arrayObj.join(separator); // , , separator 。
toLocale String、toString、valueOf:joinの特殊な使い方と見なしてもいいです。あまり使われません。
二、配列オブジェクトの3つの属性
1、length属性
Length属性は、配列の長さ、すなわち要素の個数を表します。配列のインデックスは常に0から始まるので、1つの配列の上下限はそれぞれ0とlength-1です。他の多くの言語と違って、JavaScript配列のlength属性は可変であることに注意が必要です。length属性がより大きく設定されている場合、配列全体の状態は実際には変化しません。length属性だけが大きくなります。length属性が元より小さい場合、元の配列のインデックスがlength以上の要素の値をすべて失われます。次に、length属性を変更する例を示す。

var arr=[12,23,5,3,25,98,76,54,56,76];
// 10
alert(arr.length); // 10
arr.length=12; //
alert(arr.length); // 12
alert(arr[8]); // 9 , 56
arr.length=5; // 5, 5
alert(arr[8]); // 9 "undefined"
arr.length=10; // 10
alert(arr[8]); // 10, 9 , "undefined"

上のコードからlength属性の性質を明確に見ることができます。しかし、lengthオブジェクトは明示的な設定だけでなく、暗黙的に変更されることもあります。JavaScriptでは、宣言されていない変数を使用することができます。同様に、定義されていない配列要素(インデックスがlengthを超える要素または等しい要素)を使用することもできます。このとき、length属性の値は、使用される要素インデックスの値に1を加算するように設定されます。たとえば、下記のコード:

var arr=[12,23,5,3,25,98,76,54,56,76];
alert(arr.length);
arr[15]=34;
alert(arr.length);
コードには同じように10個の数字を含む配列が定義されていますが、alert文でその長さは10であることが分かります。その後、インデックス15の要素を使用して、その割当値を15、すなわちarr[15]=34とした場合、アレット文を用いて配列の長さを出力し、得られたのは16である。いずれにしても、強いタイプのプログラミングに慣れている開発者にとっては、驚くべき特性です。実際には、new Aray()形式で作成された配列の初期長さは0であり、その中の定義されていない要素に対する操作こそ、配列の長さを変化させることができる。
 上記の説明から、length属性は、配列の容量を増加または減少させるのに便利であることが分かります。したがって、length属性についての深い理解は、開発過程での活用に役立つ。
2、prototype属性
オブジェクトタイプの原型の参照を返します。prototype属性はobject共有です。
object Name.prototypeobject Nameパラメータはobjectオブジェクトの名前です。
説明:対象のクラスの基本機能をプロトタイプ属性で提供します。オブジェクトの新しいインスタンス「継承」は、オブジェクトの原型に与える操作です。
配列オブジェクトについては、プロトタイプ属性の用途を以下の例で説明します。
配列オブジェクトに戻り行列の最大要素値を追加する方法。これを完了するには、関数を宣言して、Aray.prototypeに加入し、それを使用します。

function array_max( )

{

   var i, max = this[0];

   for (i = 1; i < this.length; i++)

   {

   if (max < this[i])

   max = this[i];

   }

   return max;

}

Array.prototype.max = array_max;

var x = new Array(1, 2, 3, 4, 5, 6);

var y = x.max( );

このコードを実行すると、yは配列xの最大値、または6を保存します。
3、constructor属性
オブジェクトを作成する関数を表します。

object.constructor //object 。
説明:constructor属性は、プロジェクトの対象となるすべてのメンバーです。それらはGlobalとMathオブジェクト以外の全てのJScript固有のオブジェクトを含んでいます。constructor属性は、特定のオブジェクトのインスタンスを構成する関数への参照を保存します。

x = new String("Hi");
if (x.constructor == String) // ( )。
または

function MyFunc {
// 。
}
y = new MyFunc;
if (y.constructor == MyFunc) // ( )。