0

私は JavaScript の基本に興味があるので、配列を作成できますが、test=new Array("parameter?"); のように配列の括弧に何を含めることができるか知りたいです。だから私はそのjavascript配列のパラメータとして何を含めるかを意味しました

4

4 に答える 4

3

配列コンストラクターはオーバーロードされ、どの結果が得られるかは、渡す引数の数とそのデータ型によって異なります。

  • 複数の引数(任意の型):

    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 ガイド、特に配列について読んでください。

于 2012-10-13T08:23:34.457 に答える
2

まず、自分が を書いていることに気付いた場合new Array、おそらくもっと良い方法があります。ただし、最初にArrayコンストラクターについて説明し、次により良い方法について説明します。

コンストラクターには 2 つのArray形式があります。ゼロまたは 1 つの引数 (その 1 つの引数が数値の場合) を取る形式と、複数の引数 (または引数が数値でない場合は 1 つの引数のみ) を取る形式です。2 番目の形式は使用しないでください。最初の形式は使用しないでください。

最初のフォーム:

var a = new Array(5);

... lengthof5にエントリがない配列を作成します (JavaScript 配列は実際にはまったく配列ではないため、「スパース」です。詳しくは以下で説明します)。引数をまったく指定しない場合、lengthis 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];

配列リテラルを使用することは、(私の見解では) いくつかの理由で "より良い" ものであり、そのうちのいくつかは他のものよりも主観的です:

  1. Arrayより明確で、コンストラクターのようなあいまいさがありません。たとえば、これは何をしますか?

    var a = new Array(foo);
    

    回答:それは(その中に何fooが入っているか、数字か何かに依存します) によって異なります。これは単に良くないtmです。

  2. 誰かがシンボルを他のもので上書きするArrayことはありません (彼らはそれを行うことができます)。

  3. より簡潔で表現力豊かです (これはおそらく最も主観的な理由です)。

もっと読む:

于 2012-10-13T08:23:16.577 に答える
0

あなたは学習曲線にいます。こちらをご覧ください。そこに配列項目を書くことができます。

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array(編集レビューが必要)

于 2012-10-13T08:17:13.047 に答える
0

構文リファレンス

[element0、element1、...、elementN]
new Array(element0、element1、...、elementN)
new Array(arrayLength)

MDNチュートリアル

于 2012-10-13T08:20:40.460 に答える