2012-02-12 17 views
9

私は配列を扱うときはいつでも、私はnew Array(N)を使用する要素の一定量を持つ配列を作成したいとき、私はいつも、しかし、[]スタイルを使用するには(私はこれを行うための他の方法を知らない)古い「新しい配列(N)」なしにN個の要素を持つ配列を作成する正しい方法はありますか?

私はこれについて、これらの強い言葉を読むまで、私は、それは大したことではないと思った。「新しいアレイ()」の代わりに「[]」の、または「新しい オブジェクトを()」を使用してこれを行う

誰でも、 "{}"の代わりにJavaScriptを再学習する必要があります。

私は本当に悪いコードを書くことを避けたいと思います。誰もが正しい方向を教えてくれますか?

+2

私は実際にあなたがすでに大丈夫だと思います。ほとんどの場合、配列を割り当てるときに '[]'構文を使い、特定のサイズを必要とするときは 'new Array(n)'を使います。あなたが投稿した見積もりは、すべての状況を説明するものではありません。 –

+0

@Michaelは知っておいてよかった!今度はライトをオフにして寝ることができると思います:) – mithril333221

+1

この方法で 'Array'コンストラクタを使うのは何も問題ありません。それは正当な理由のために存在します。 –

答えて

5

2006年のブログのランダムなコメントについて心配することはあまりありません。特に、ユースケースはnew Array()ではないため、この目的のために特別に用意された特別なコンストラクタを使用しています。

さらに、[]の代わりにnew Array()を使用すると、誰かがJSでできる最悪の事はほとんどありません。

+1

あなたはおそらく正しいです、私は6歳のポストのために胎児の位置とライトでオンにする必要があります – mithril333221

+0

これは必ずしもその引用符を作ることはありません_wrong_ - ちょうど私たちは、私たちはそれを見るとき。 –

1
function repeat(str, len){ 
    str= str || ''; 
    len= len || 1; 
    return Array(len+1).join(str); 
} 

repeat('*',25) 

// returned value: (String) 
+0

これは悪い習慣です。一般に、 'new'キーワードを省略すると、危険で不正確です。 'Array'コンストラクタがうまく動作し、' new'キーワードで内部的にコンストラクタを効果的に再呼び出しすることで間違いを訂正するだけです。 –

+0

私はそれが悪い習慣であることに同意しない。新しいvsクラスファクトリを上回ることは、JavaScriptに慣れているときに何度か起きるかもしれませんが、いつも新しいことを使うか、常に工場を使うようにするのは難しいです。ファンクションはファクトリではありません。これは簡単に表面を修正して修正することができます。どの構文が実際の使用において最も構文的な明快さを提供するかを調べてください。 'Point(x、y)'とJQueryの '$'は工場として意味があり、newスプライト(モンスター["dragon"])のように、 – Plynx

0

私はこの質問がかなり古くなっていることを知っていますが、JavaScriptのリテラル構文を使用して新しいArray(サイズ)の代替としてコードする方法はここです。

var arr = []; 
arr.length = size; 
関連する問題