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

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

高洛峰
リリース: 2017-02-06 10:09:34
オリジナル
1236 人が閲覧しました

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]= "これは新しい値です"; element

3. 配列要素の追加

arrayObj.push([item1 [item2 [. . . [itemN ]]]]); // 1 つ以上の新しい要素を配列の末尾に追加し、新しい長さを返します。配列
arrayObj.unshift([item1 [item2 [... ,0,[item1[, item2[, . . . [,itemN]]]]);// 1 つ以上の新しい要素を指定された位置に挿入します挿入位置の要素は自動的に後ろに移動され、「」が返されます。

4. 配列要素の削除

arrayObj.pop(); //最後の要素を削除し、要素の値を返す

arrayObj.shift(); //配列 Elements の最初の要素を削除し、要素の値を返す自動的に前方に移動します
arrayObj.splice(deletePos,deleteCount); //指定された位置deletePosから指定された数の要素を削除し、削除された要素を配列形式で返します

5. 配列のインターセプトとマージ。 .slice(start, [end]); //endに相当する要素は含まれないので注意してください

arrayObj .concat([item1[, item2[, . . . [,itemN]]]]); //複数の配列 (文字列、または配列と文字列の混合も可能) を 1 つの配列に連結し、接続された新しい配列を返します。 array

6, 配列のコピー

arrayObj.slice(0); // 配列のコピー配列を返します。これは新しい配列であり、

arrayObj.concat() を指しません。 // 配列のコピー配列を返します。 、これは新しい配列であり、

7 を指していないことに注意してください。配列要素を並べ替えます

arrayObj.reverse(); // 要素を反転し (最初から最後、最後から前)、配列を返します。 address

arrayObj.sort(); // 配列要素をソートし、配列アドレスを返します

arrayObj.join(separator); // この文字列は、各要素の値を結合します。配列を中央にセパレータを付けて分離します。
toLocaleString、toString、valueOf: 一般的には使用されない結合の特殊な使用法とみなすことができます

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

1、length 属性

Length 属性は配列の長さを表します。その中の要素の数。配列のインデックスは常に 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个元素已经变为"undefined"
arr.length=10; //将数组长度恢复为10
alert(arr[8]); //虽然长度被恢复为10,但第9个元素却无法收回,显示"undefined"
ログイン後にコピー

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

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

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

上記の紹介からわかるように、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;
var x = new Array(1, 2, 3, 4, 5, 6);
var y = x.max( );
ログイン後にコピー

该代码执行后,y 保存数组 x 中的最大值,或说 6。

3、constructor 属性

表示创建对象的函数。

object.constructor //object是对象或函数的名称。

说明:constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。

例如:

x = new String("Hi");
if (x.constructor == String) // 进行处理(条件为真)。
ログイン後にコピー

function MyFunc {
// 函数体。
}
y = new MyFunc;
if (y.constructor == MyFunc) // 进行处理(条件为真)。
ログイン後にコピー

小伙伴们看完之后是否对javascript数组的操作有了新的认识了呢,希望大家能够喜欢本文。

更多javascript 数组操作详解相关文章请关注PHP中文网!

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