2016-11-11 3 views
2

私は頻繁に人々はこのように、splitメソッドを使用して人口の配列を定義するコードを参照してください。Javascriptでは、なぜsplitで配列を定義するのですか?

var colors = "red,green,blue".split(','); 

どのようにこれが異なるん:

var colors = ["red","green","blue"]; 

が、それはそれぞれの値を引用することを避けるために、単純です?

+10

最初は悪い習慣です。 –

+1

さらにCPUサイクルを費やす。 –

+0

私は多分誰かが特別なコードを持っていたいと思います:)。配列を作成するために分割するとパフォーマンス上の問題があります。以前は文字列で操作する必要があります。 –

答えて

3

文字列を分割することは、配列を作成するための悪い方法です。パフォーマンス、安定性、メモリ消費などのアプローチにはいくつかの問題があります。文字列を解析するにはCPU時間が必要で、エラー(ダブルコンマ、文字列の空白など)が発生しやすく、スクリプトには基本的にメモリに2倍のデータを格納する必要があります。

これは良い考えではなく、誰かが最初に文字列や配列について学んだときに拾った悪い習慣です。それは、ある種のコーディングのために賢明にしようとしています。

文字列データを外部ソースから読み込み、それをネイティブ型に変換する必要がある場合は、経験則として、文字列を配列に解析する必要があります。事前に値を知っている場合は、自分で配列を作成する必要があります。

これを行う可能性がある理由の1つは、ソースコード内の文字数を減らし、帯域幅の取引パフォーマンスを低下させることです。 'a,b,c,d,e,f,g'.split(',')は、['a','b','c','d','e','f','g']より少ない文字数です。

+0

私が間違っていれば私を訂正してください(私は非常にうまくいくかもしれませんが)外れ値のユースケースがあります。文字列を文字配列 "abcdefgh"に変換しようとしている場合は、配列メソッドを素早く得るために.split( '')がうまく動作します。 – zfrisch

+0

@zfrischあなたはそれを行うことができます_could_私はあなたがハードコードして分割する必要が本当に長い文字列を持っている理由を考えることができません。私は長い文字列について話しています。短い場合、配列を行うだけかもしれません - 確かに、入力するのは面倒ですが、本当にh-hなら手で入力するだけです。 – vlaz

+0

可能性のあるアウトライアー理由を1つ追加しました。そのリストにたくさんの項目がある場合は、短いソースコード。 – Soviut

1

違いはありませんが、それはまあまあの悪い習慣と怠け者です。私が最初のアプローチを使用して考えることができる唯一の理由は、データが自然に文字列形式になり、配列リテラルを使用すると完全に判読できなくなった場合です。

関連する問題