ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptの配列操作の詳しい説明

JavaScriptの配列操作の詳しい説明

高洛峰
リリース: 2017-02-06 09:44:07
オリジナル
1182 人が閲覧しました

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 ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。
ログイン後にコピー

5. 配列要素の削除

arrayObj.pop(); //移除最后一个元素并返回该元素值
arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移
arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素
ログイン後にコピー

6. 配列のコピー

arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素
arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组
ログイン後にコピー

7. 配列要素の並べ替え

arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向
arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向
ログイン後にコピー

2. 配列オブジェクトの 3 つの属性

1. Length 属性配列の長さ、つまり配列内の要素の数を表します。配列のインデックスは常に 0 から始まるため、配列の上限と下限はそれぞれ 0 と length-1 になります。他のほとんどの言語とは異なり、JavaScript 配列の長さプロパティは可変であるため、特別な注意が必要です。 length 属性がより大きく設定されても、実際には配列全体の状態は変化しません。length 属性が元の値よりも小さく設定されている場合、元の配列内の要素のインデックスがそれ以上になるだけです。長さはすべての値が失われます。以下は、長さ属性の変更を示す例です。

コード

arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址
arrayObj.sort(); //对数组元素排序,返回数组地址
ログイン後にコピー

上記のコードから、長さ属性の性質を明確に見ることができます。ただし、長さオブジェクトは明示的に設定できるだけでなく、暗黙的に変更することもできます。同様に、JavaScript で未定義の変数を使用することもできます (長さ以上のインデックスを持つ要素を参照します)。この場合、length 属性の値は に設定されます。使用される要素インデックスの値に 1 を加えます。たとえば、次のコード:

arrayObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用
ログイン後にコピー

このコードでは、最初に 10 個の数値を含む配列も定義されています。アラート ステートメントから、その長さが 10 であることがわかります。次に、インデックス 15 の要素が使用され、値 15、つまり arr[15]=34 が割り当てられます。このとき、alert ステートメントは配列の長さを出力するために使用され、結果は 16 になります。いずれにしても、これは、厳密に型指定されたプログラミングに慣れている開発者にとっては驚くべき機能です。実際、 new Array() を使用して作成された配列の初期の長さは 0 です。配列の長さが変化するのは、未定義の要素の操作です。

上記の紹介からわかるように、length 属性は非常に魔法のようなもので、これを使用すると配列の容量を簡単に増減できます。したがって、長さ属性を深く理解すると、開発プロセス中に長さ属性を柔軟に使用するのに役立ちます。

2. プロトタイプ属性

は、オブジェクト型のプロトタイプへの参照を返します。プロトタイププロパティはオブジェクトに共通です。

objectName.prototype

objectName パラメーターは、オブジェクト オブジェクトの名前です。

説明: プロトタイプ属性を使用して、オブジェクトのクラスの基本関数のセットを提供します。 オブジェクトの新しいインスタンスは、オブジェクトのプロトタイプに割り当てられた操作を「継承」します。

配列オブジェクトの場合、次の例は、prototype 属性の使用法を示しています。

配列内の最大要素値を返すメソッドを配列オブジェクトに追加します。これを実現するには、関数を宣言し、それを Array.prototype に追加して使用します。

コード

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"
ログイン後にコピー

このコードが実行されると、y は配列 x の最大値、つまり 6 を保持します。

3. コンストラクター属性

は、オブジェクトを作成する関数を表します。

object.constructor //object はオブジェクトまたは関数の名前です。

説明: コンストラクター プロパティは、プロトタイプを持つすべてのオブジェクトのメンバーです。これらには、Global オブジェクトと Math オブジェクトを除くすべての JScript ネイティブ オブジェクトが含まれます。コンストラクター プロパティは、特定のオブジェクト インスタンスを構築する関数への参照を保持します。

例:

var arr=[12,23,5,3,25,98,76,54,56,76];
alert(arr.length);
arr[15]=34;
alert(arr.length);
ログイン後にコピー

または

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();
ログイン後にコピー
x = new String("Hi");
if (x.constructor == String) // 进行处理(条件为真)。
ログイン後にコピー

配列の場合:

y = new Array();

以上がこの記事の全内容です、この記事の内容が皆様のお役に立てれば幸いです。勉強や仕事に来てください。また、PHP 中国語 Web サイトをサポートしていただければ幸いです。

JavaScript の配列操作の詳細な説明と関連記事については、PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート