私は長い間jsを使ってきましたが、jsの配列形式について勉強したことがありませんでした。場合によっては、単純な string.split(char) を使用するだけです。この時期に取り組んだプロジェクトでは、多くの場所で配列を使用していました。私は JS をマスターしたと思っていましたが、そこから始めることができませんでした。ふふ。学習してみると、js の配列は非常に強力で、VB や C# よりもはるかに強力であることがわかりました。 ゆっくり見てみましょう
1. 配列の作成
var arrayObj = new Array() // 配列を作成します
var arrayObj = new Array ([size]); //配列を作成し、長さを指定します。上限ではなく、長さ
var arrayObj = new Array([element0[, element1[, .. .[, elementN]]]]);/ /配列を作成し、値を割り当てます
2 番目のメソッドは配列を作成して長さを指定しますが、実際には配列であることに注意してください。すべての場合において可変長です。つまり、長さが指定されている場合でも、長さは 5 です。指定された長さを超えても要素を格納できます。 注: 長さはそれに応じて変更されます。
2. 配列要素へのアクセス
var testGetArrValue=arrayObj[1]; // 配列の要素の値を取得します。
arrayObj[1]= "これが新しい値です"; // 配列の要素に新しい値を割り当てます。 🎜>
3. 配列要素の追加
arrayObj.push([item1 [item2 [. . . [itemN ]]]]); // 1 つ以上の新しい要素を配列の末尾に追加し、新しい長さを返します。配列
arrayObj.unshift([item1 [item2 [... ,[item1[, item2[, . . . [,itemN]]]]);// 1 つ以上の新しい要素を指定された位置に挿入します配列の挿入位置の要素が自動的に戻され、「」が返されます。
4. 配列要素の削除
arrayObj.shift(); //最初の要素を削除して要素の値を返すarray 真ん中の要素は自動的に前に移動します
arrayObj.splice(deletePos,deleteCount) //指定された位置 deletePos から指定された数の deleteCount 要素を削除し、削除された要素を配列形式で返します
5. 配列のインターセプトとマージ
コードをコピーします
コードは次のとおりです。 🎜> arrayObj.slice(start, [end]); //end に相当する要素は含まれないので注意してください。開始後のすべての要素がコピーされます arrayObj.concat([item1[ , item2[, . . . [,itemN]]]]); // 複数の配列を連結します (文字列、または配列と配列の混合も可能)文字列) を 1 つの配列に変換し、接続された新しい配列
を返します。6. 配列のコピー
コードをコピー
コードは次のとおりです。 arrayObj.slice(0); // 配列のコピー配列を返します。これは新しい配列であることに注意してください。 to arrayObj.concat(); // 配列のコピー配列を返します。これは新しい配列であり、
を指していないことに注意してください。 7. 配列要素の並べ替え
コードをコピーします
コードは次のとおりです。 arrayObj.reverse(); //要素を反転し (最初から最後、最後のものを前に)、配列アドレスを返します。 arrayObj. sort(); // 配列要素を並べ替えて、配列アドレスを返します
8. 配列要素の文字列化
コードをコピー
コードは次のとおりです。 > arrayObj.join(separator); //文字列を返します。この文字列は、配列の各要素値をセパレータで区切って結合します。 toLocaleString、toString、valueOf: は、一般的には使用されず、結合の特別な使用法と見なすことができます 2. 配列オブジェクトの 3 つの属性
1. 長さ属性
長さ属性は、配列の長さ、つまり配列内の要素の数を表します。配列のインデックスは常に 0 から始まるため、配列の上限と下限はそれぞれ 0 と length-1 になります。他のほとんどの言語とは異なり、JavaScript 配列の長さプロパティは可変であるため、特別な注意が必要です。 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 番目の要素が「未定義」になったことを示します
arr.length=10; //配列の長さを 10 に戻します
alert(arr) [8]); //長さは 10 に復元されますが、9 番目の要素は復元できず、「未定義」と表示されます。
上記のコードから、次の性質がはっきりとわかります。長さ属性。ただし、長さオブジェクトは明示的に設定できるだけでなく、暗黙的に変更することもできます。同様に、JavaScript で未定義の変数を使用することもできます (長さ以上のインデックスを持つ要素を参照します)。この場合、length 属性の値は に設定されます。使用される要素のインデックスの値に 1 を加算します。たとえば、次のコード:
var arr=[ 12,23,5,3,25,98,76,54,56,76];
alert(arr.length);
arr[15]=34; (arr.length) ;
また、このコードでは、最初に 10 個の数値を含む配列が定義されており、その長さが 10 であることがわかります。次に、インデックス 15 の要素が使用され、値 15、つまり arr[15]=34 が割り当てられます。このとき、alert ステートメントは配列の長さを出力するために使用され、結果は 16 になります。いずれにしても、これは、厳密に型指定されたプログラミングに慣れている開発者にとっては驚くべき機能です。実際、 new Array() を使用して作成された配列の初期の長さは 0 です。配列の長さが変化するのは、未定義の要素の操作です。
上記の紹介からわかるように、length 属性は非常に魔法のようなもので、これを使用すると配列の容量を簡単に増減できます。したがって、length 属性を深く理解すると、開発プロセス中にそれを柔軟に使用するのに役立ちます。
2. プロトタイプ属性
オブジェクト型のプロトタイプへの参照を返します。プロトタイププロパティはオブジェクトに共通です。
objectName.prototype
objectName パラメータは、オブジェクト オブジェクトの名前です。
説明: プロトタイプ属性を使用して、オブジェクトのクラスの基本関数のセットを提供します。 オブジェクトの新しいインスタンスは、オブジェクトのプロトタイプに割り当てられた操作を「継承」します。
配列オブジェクトの場合、次の例は、prototype 属性の使用法を示しています。
配列内の最大要素値を返すメソッドを配列オブジェクトに追加します。これを実現するには、関数を宣言し、それを Array.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; new Array( 1, 2, 3, 4, 5, 6);
var y = x.max();
このコードが実行されると、y は最大値を保存します。配列 x の値、または 6。
3. コンストラクター属性
は、オブジェクトを作成する関数を表します。
object.constructor //object はオブジェクトまたは関数の名前です。
説明: コンストラクター プロパティは、プロトタイプを持つすべてのオブジェクトのメンバーです。これらには、Global オブジェクトと Math オブジェクトを除くすべての JScript ネイティブ オブジェクトが含まれます。コンストラクター プロパティは、特定のオブジェクト インスタンスを構築する関数への参照を保持します。
例:
if (x.constructor == String) // 処理 (条件が true の場合)。
or
function MyFunc {
// Function body.
}
y = new MyFunc;
if (y.constructor == MyFunc) // Process (condition is true).
For arrays:
y = new Array();