私は JavaScript の基本に興味があるので、配列を作成できますが、test=new Array("parameter?"); のように配列の括弧に何を含めることができるか知りたいです。だから私はそのjavascript配列のパラメータとして何を含めるかを意味しました
4 に答える
配列コンストラクターはオーバーロードされ、どの結果が得られるかは、渡す引数の数とそのデータ型によって異なります。
複数の引数(任意の型):
var arr = new Array(1,2,3,4);
コンストラクターに渡された値を含む新しい配列を作成します。
一つの引数...
... タイプnumberの:
var arr = new Array(4);
空の配列を作成し、その長さを引数として渡された数値に設定します。配列には 4 つの要素があるように見えますが (長さが 4 であるため)、要素は含まれていません (たとえば、
arr[0]
になりますundefined
)。...その他のタイプ:
var arr = new Array('foo');
1 つの要素 (コンストラクターに渡される引数) を含む配列を作成します (複数の引数を渡すのと同じです)。
コンストラクター関数のこのあいまいさのためArray
、それを避け、代わりに配列リテラルを使用する必要があります。
var arr = [1,2,3,4];
とはいえ、基本を学ぶには、MDN JavaScript ガイド、特に配列について読んでください。
まず、自分が を書いていることに気付いた場合new Array
、おそらくもっと良い方法があります。ただし、最初にArray
コンストラクターについて説明し、次により良い方法について説明します。
コンストラクターには 2 つのArray
形式があります。ゼロまたは 1 つの引数 (その 1 つの引数が数値の場合) を取る形式と、複数の引数 (または引数が数値でない場合は 1 つの引数のみ) を取る形式です。2 番目の形式は使用しないでください。最初の形式は使用しないでください。
最初のフォーム:
var a = new Array(5);
... length
of5
にエントリがない配列を作成します (JavaScript 配列は実際にはまったく配列ではないため、「スパース」です。詳しくは以下で説明します)。引数をまったく指定しない場合、length
is 0
.
2 番目の形式:
var a = new Array(5, 6);
...引数と同じ数のエントリ (この場合は 2 つ) を持つ配列を作成し、引数を使用してそれらのエントリの値を設定します。
引数の数と型の両方が重要であることに注意してください。
var a = new Array(5); // Creates an array with length = 5 with no entries
var b = new Array("5"); // Creates an array with length = 1 and entry [0] = "5"
ほとんどの場合、配列リテラルを使用する方がはるかに優れています。
上記の最初の形式は、代わりに配列リテラルで行われます。
var a = [];
a.length = 5;
上記の 2 番目の形式は、代わりに配列リテラルで行われます。
var a = [5, 6];
配列リテラルを使用することは、(私の見解では) いくつかの理由で "より良い" ものであり、そのうちのいくつかは他のものよりも主観的です:
Array
より明確で、コンストラクターのようなあいまいさがありません。たとえば、これは何をしますか?var a = new Array(foo);
回答:それは(その中に何
foo
が入っているか、数字か何かに依存します) によって異なります。これは単に良くないtmです。誰かがシンボルを他のもので上書きする
Array
ことはありません (彼らはそれを行うことができます)。より簡潔で表現力豊かです (これはおそらく最も主観的な理由です)。
もっと読む:
Array
sの ECMAScript (JavaScript) 仕様- JavaScript 配列が配列ではないことを説明する、配列の神話(私のブログ)
あなたは学習曲線にいます。こちらをご覧ください。そこに配列項目を書くことができます。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array(編集レビューが必要)
[element0、element1、...、elementN]
new Array(element0、element1、...、elementN)
new Array(arrayLength)