2012-09-11 5 views
5

に触発されましたthis popular speech私は配列の作成に関連するいくつかの問題を理解したかったのです。のは、私は新しい配列を作成していましょう:コンソールでJavascriptの新しい配列とjoin()メソッド

Array(3)

を私は取得しています:かなり明白である

[undefined, undefined, undefined]

を。

Array(3).join()

私は取得しています応答として:のは、私はその配列に入社やっているとしましょう

これらは、3つの空の文字列であるため、同様にかなり理解しやすい",,"

、分離コンマで、私は思います。その言葉の2、3つはありません繰り返しがあるのはなぜ

"loremlorem"

:しかし、私がやろうとしていたとき:

Array(3).join("lorem")

を私は「Loremの」の2つだけ繰り返した文字列を取得しています?

+3

を印刷します'lorem's? –

+2

なぜこれが投票されたのですか? – Phil

+0

すべてのあなたの答えをありがとう。私は 'join()'メソッドが何をすべきかを間違って解釈しているようです。今は私にはすべてが分かります。 – user1292810

答えて

8

joinは、結合要素として渡された要素を使用して要素を結合します。

var arr = [1, 2, 3, 4, 5]; // Like Array(5), except not sparse 

arr.join('-and-'); // 1-and-2-and-3-and-4-and-5 

そして、あなたの最初の例join出力:だからあなたはlorem s「を取り巻く」3つの空の文字列があります:あなたは空の配列を使用しない場合

|lorem|lorem| 

を少しより明白であるかもしれませんところで、間違っています。 ,,または",,"である必要があります。 (出力形式によって異なる)

+0

もちろん、あなたはその出力について正しいです、私のせいで、私は編集した質問をしました。 – user1292810

+0

私は主要な点も得ています。私は 'join()'メソッドの考え方を誤解しているので、私は質問しました。 – user1292810

2

結合は、配列内の要素を指定された区切り文字で結合します。

3つの要素があるため、2つの区切り文字(1番目と2番目、2番目と3番目の間)が必要です。

var a = [1,2,3]; 
a.join(','); //1,2,3 
a.join('test'); // 1test2test3 
1

あなたは3人のメンバーの配列を持っている場合は、.joinは間のメンバーでフィラーなので、2つだけが文字列に参加がなければなりません。

したがって、2番目の出力は正しいです。

.join()を使用した最初の出力は、テストのバグまたはテストコードの誤った表現のようです。

.join()のデフォルト値は","ので、この:意志より

[, ,] 

",," 

あなたが表示され、出力は:

new Array(3).join(); 

はあなたにこれを与える必要がありますおそらくにnew Array(3)と入力するだけですには.join()が含まれていません。

+0

あなたは正しいです、それは私のせいです、私はちょうどwrond出力をコピーしました。 – user1292810

+0

@ user1292810:問題ありません。 :)主な点は、 '.join()'は、引数を渡さないときに ''、 ''のデフォルト値を持つということです。 –

3

結合には区切り文字が使用されます。 "lorem"はこれまでにあったコンマを置き換えました。

2

joinのドキュメントをご覧ください。

結合関数に渡すものは、配列の要素間のセパレータとして使用されます。 Array(3)で配列を宣言すると、3つの要素を持つ配列が作成されます。結合メソッドは、それらの要素の間にセパレータを挿入するので、2つの "lorem"だけが表示されます。

実際、表示される内容は、blank lorem blank lorem blankです。空白は配列の空要素です。

は、次の操作を実行してください:

var fruits = ["banana", "orange", "apple"] 
fruits.join("lorem") 

それは唯一の2カンマを使用すると、 ``)(結合を使用する場合、なぜあなたは3があると期待しますがあります

bananaloremorangeloremapple

関連する問題