2011-11-10 11 views
0

私はjavascriptで配列を操作しようとしています。これは、代わりに一緒に凝集し、それらのすべての個々の数字に配列を分割しないのはなぜ数字の文字列からのJavascript配列

var visList = '1234,5678,9' 
var visListArray = new Array(visList); 
for (i = 0; i <= visListArray.length - 1; i++) 
{ 
     alert(visListArray[i]); 
} 

:次のコードを考えてみましょうか?

本当にありがとうございます。

感謝

答えて

8

は、文字列にsplit()を呼び出すことで、配列を作成します。

var visList = '1234,5678,9' 
var visListArray = visList.split(","); 

あなたは、実際のコードのためのコードのように見える文字列をsubstitueすることはできません。これは仕事だろうが:文字列が3カンマ区切りの引数としてArrayコンストラクタによって解釈されていないため、

var visListArray = new Array(1234,5678,9); 

ユアーズは、それが1つの文字列として解釈されていません。

編集:文字列にsplit()を呼び出すと、文字列の配列になります。数値の配列が必要な場合は、各文字列を数値に変換して配列を反復処理する必要があります。それを行う1つの便利な方法はmap() methodを使用することです:

visListArray = visList.split(",").map(function (item) { 
    return +item; 
}); 

古いブラウザでmap()を使用するためのcompatibility noteを参照してください。

1

そのため、文字列は、これを試してみてください。

var visList = '1234,5678,9' 
var visListArray = [].concat(visList.split(',')); 
for (i = 0; i <= visListArray.length - 1; i++) { 
    alert(visListArray[i]); 
} 
+2

なぜ 'concat'を呼び出すのですか? –

+0

配列を初期値で初期化するには、 –

+0

@Shlomi - concatへの呼び出しは完全に冗長です。 – RobG

1

をあなたは配列に記号で区切られたリストを変換するにはstring.split

var visList = '1234,5678,9' 
var visListArray = visList.split(","); 

for (i = 0; i <= visListArray.length - 1; i++) 
{ 
    alert(visListArray[i]); 
} 
+0

OPは** splitを使用していません。例えば、var s = '1234,5678,9'.match(/ \ d +/g);のようなものですが、このトリックも行います。 – RobG

1

を使用する必要があり、あなたはスプリット(記号)を使用することができます:

var list = "1221,2323,4554,7667".split(","); 
for (var i = 0, il = list.length; i < il; i++) { 
    alert(+list[i]); // a casting from string to number 
} 
関連する問題