ホームページ >ウェブフロントエンド >jsチュートリアル >配列を再構築する
配列は、順序付けられた値のリストであり、通常はインデックス 0 から始まる数値インデックス付きの値をループするために作成されます。知っておく必要があるのは、配列は番号順のコレクションであり、番号順ではない値に関連付けられたプロパティ名を持つオブジェクトではないということです。基本的に、配列は検索キーとして数値を使用しますが、オブジェクトにはユーザー定義のプロパティ名があります。 JavaScript には真の連想配列はありませんが、オブジェクトを使用して連想配列の機能を実装できます。
以下の例では、4 つの文字列を myArray
に保存し、数値インデックスを使用してそれらにアクセスできます。 myArray
を、連想配列を模倣したオブジェクト リテラルと比較対照します。
例:sample133.html
リーリー配列は任意の型の値を保持でき、これらの値はいつでも更新または削除できます。
ハッシュ (連想配列とも呼ばれます) が必要な場合、オブジェクトが最も近い解決策です。
Array()
は、Object()
の特別なタイプにすぎません。つまり、Array()
インスタンスは基本的に Object()
インスタンスに、いくつかの追加関数 (.length
と組み込みの数値インデックス) を追加したものです。
配列に含まれる値は、多くの場合要素と呼ばれます。
Array()
パラメータ配列インスタンスの値をコンマ区切りの引数としてコンストラクターに渡すことができます (new Array('foo', 'bar');
)。 Array()
コンストラクターは最大 4,294,967,295 個のパラメーターを受け取ることができます。
ただし、引数が 1 つだけ Array()
コンストラクターに送信され、その値が整数 ('1'、'123'、または '1.0') の場合は、その引数が使用されます。 配列の長さ
を設定します。配列に含まれる値としては使用されません。
例:sample134.html
リーリーArray()
プロパティとメソッドArray()
オブジェクトには次のプロパティがあります (継承されたプロパティとメソッドを除く)。
Array.prototype):
配列オブジェクト インスタンスのプロパティとメソッド
######コンストラクタ###### ######長さ######
インスタンス メソッド (
var myArray = ['foo']; myArray.pop();
シフト解除()
concat()
配列の作成
演算子と
Array()次の例では、
Array() の配列を作成し、リテラル表記を使用して
myArray2## を作成します。 #。
リーリー
リテラル構文を使用して配列を定義する方が一般的ですが、このショートカットは
実際には、通常は配列リテラルだけで十分です。
値はいつでも、任意のインデックスで配列に追加できます。次の例では、空の配列の数値インデックス 50 に値を追加します。 50 より前のすべての指数はどうなるでしょうか?先ほども述べたように、いつでもどのインデックスでも配列に値を追加できます。ただし、空の配列の数値インデックス 50 に値を追加すると、JavaScript はその前に必要なすべてのインデックスを
未定義例:sample136.html
リーリー
例:sample137.html
リーリー
配列のインデックス値は 0 から始まります。これは、値を保持する配列内の最初の数値スロットが が myArray
配列の数値インデックス 0 に含まれていますが、配列には値が含まれているため、配列の長さは 1 です。 。
例:sample138.html
<!DOCTYPE html><html lang="en"><body><script> var myArray = ['blue'] // The index 0 contains the string value 'blue'. console.log(myArray[0]); // Logs 'blue'. console.log(myArray.length); // Logs 1. </script></body></html>
length
定义数组
正如我之前提到的,通过将单个整数参数传递给 Array()
构造函数,可以预定义数组长度或其将包含的值的数量。在这种情况下,构造函数会抛出一个异常,并假设您要设置数组的长度,而不是用值预先填充数组。
在下一个示例中,我们设置了预定义长度为 3 的 myArray
数组。同样,我们配置数组的长度,而不是向其传递要存储在 0 索引处的值。
示例:sample139.html
<!DOCTYPE html><html lang="en"><body><script> var myArray = new Array(3); console.log(myArray.length); // Logs 3 because we are passing one numeric parameter. console.log(myArray[0]); // Logs undefined. </script></body></html>
提供预定义的 length
将为每个数字索引(最多指定的长度)提供 undefined
的关联值。
您可能想知道是否可以创建一个仅包含一个数值的预定义数组。是的,它是通过使用文字形式 var myArray = [4]
.
数组对象的 length
属性可用于获取或设置数组的长度。如前所示,设置长度大于数组中包含的实际值数会将 undefined
值添加到数组中。您可能没想到的是,您实际上可以通过将长度值设置为小于数组中包含的值的数量来从数组中删除值。
示例:sample140.html
<!DOCTYPE html><html lang="en"><body><script> var myArray = ['blue', 'green', 'orange', 'red']; console.log(myArray.length); // Logs 4. myArray.length = 99; console.log(myArray.length); // Logs 99, remember we set the length, not an index. myArray.length = 1; // Removed all but one value, so index [1] is gone! console.log(myArray[1]); // Logs undefined. console.log(myArray); // Logs '["blue"]'. </script></body></html>
由于数组可以保存任何有效的 JavaScript 值,因此数组可以包含其他数组。完成此操作后,包含封装数组的数组将被视为多维数组。访问封装的数组是通过括号链接完成的。在下面的示例中,我们创建一个包含一个数组的数组文字,在其中创建另一个数组文字,在其中创建另一个数组文字,其中包含索引 0 处的字符串值。
示例:sample141.html
<!DOCTYPE html><html lang="en"><body><script> var myArray = [[[['4th dimension']]]]; console.log(myArray[0][0][0][0]); // Logs '4th dimension'. </script></body></html>
这个代码示例相当愚蠢,但您会明白数组可以包含其他数组,并且您可以无限期地访问封装的数组。
循环数组的最简单且可以说是最快的方法是使用 while 循环。
在下面的代码中,我们从索引的开头循环到结尾。
示例:sample142.html
<!DOCTYPE html><html lang="en"><body><script> var myArray = ['blue', 'green', 'orange', 'red']; var myArrayLength = myArray.length; // Cache array length to avoid unnecessary lookup. var counter = 0; // Set up counter. while (counter < myArrayLength) { // Run if counter is less than array length. console.log(myArray[counter]); // Logs 'blue', 'green', 'orange', 'red'. counter++; // Add 1 to the counter. } </script></body></html>
现在我们从索引末尾循环到开头。
示例:sample143.html
<!DOCTYPE html><html lang="en"><body><script> var myArray = ['blue', 'green', 'orange', 'red']; var myArrayLength = myArray.length; while (myArrayLength--) { // If length is not zero, loop and subtract 1. console.log(myArray[myArrayLength]); // Logs 'red', 'orange', 'green', 'blue'. } </script></body></html>
现在,如果您想知道为什么我没有在这里显示 for 循环,那是因为 while 循环的移动部分较少,而且我相信它们更容易阅读。
关于数组的这篇文章就这样结束了。
以上が配列を再構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。