javascriptの配列操作


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([item 1[item 2])///配列の最後に1つ以上の新しい要素を追加し、行列の新しい長さを返します.
arrayObj.unshift([item 1[item 2]])//配列の開始に1つ以上の新しい要素を追加します.配列中の要素は自動的に後に移動し、行列の新しい長さを返します.
arrayObj.splice(insertPos,0,[item 1[,item 2]]])///1つ以上の新しい要素を配列の指定位置に挿入し、挿入位置の要素は自動的に後に移動し、「」を返します.
4、配列要素の削除
arrayObj.pop()//最後の要素を削除して要素値を返します.
arrayObj.shift()//最初の要素を削除して要素値を返します.配列中の要素は自動的に前に移動します.
arrayObj.splice(deletePos、deleteCount);指定された位置deletePosから指定された数のdeleteCountを削除し、削除された要素を配列形式で返します.
5、配列の切り取りと結合
arrayObj.slice(start、[end])//配列の形で配列の一部を返します.endに対応する要素は含まれていません.endを省略するとstart後のすべての要素がコピーされます.
arrayObj.co ncat([item 1],item 2[...[,itemen]]]])))//複数の配列(文字列でも良いし、配列と文字列の混合)を1つの配列に接続し、接続された新しい配列を返します.
6、配列のコピー
arrayObj.slice(0)//配列のコピー配列を返します.
arrayObj.co ncat()//配列のコピー配列を返します.
7、配列要素の並べ替え
arrayObj.reverse()//要素を反転します.一番前の列は最後、最後の列は一番前になります.配列アドレスを返します.
arrayObj.sort()//配列要素を並べ替えて、配列アドレスを返します.
8、配列要素の文字列化
rayObj.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,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,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.prototype
object 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.co nstructor//objectは対象または関数の名前です.
説明:constructor属性は、プロジェクトの対象となるすべてのメンバーです.それらはGlobalとMathオブジェクト以外の全てのJScript固有のオブジェクトを含んでいます.constructor属性は、特定のオブジェクトのインスタンスを構成する関数への参照を保存します.
たとえば:
x=new String(「Hi」)
if(x.com nstructor==String)//(条件は本当です).
または
function MyFun{
//関数体
)
y=new MyFun;
if(y.com nstructor==MyFun)//(条件は本当)です.
 
回転:http://www.cnblogs.com/zhangzt/archive/2011/04/01/2002213.html