416

文字列を JavaScript 配列に変換するにはどうすればよいですか?

コードを見てください:

var string = "0,1";
var array = [string];
alert(array[0]);

この場合、alertがポップアップし0,1ます。配列の場合は をポップアップし、が呼び出され0た場合alert(array[1]);は をポップアップする必要があり1ます。

そのような文字列を JavaScript 配列に変換する機会はありますか?

4

18 に答える 18

741

そのような単純な配列メンバーの場合は、 を使用できますJSON.parse

var array = JSON.parse("[" + string + "]");

これにより、数値の配列が得られます。

[0, 1]

を使用する.split()と、文字列の配列になります。

["0", "1"]

JSON.parseサポートされているデータ型に制限されることに注意してください。undefinedまたは 関数のような値が必要な場合はeval()、 または JavaScript パーサーを使用する必要があります。


を使用したい.split()が、数値の配列も必要な場合は、 を使用できますがArray.prototype.map、IE8 ではそれをシムして下げるか、単に従来のループを記述する必要があります。

var array = string.split(",").map(Number);
于 2012-11-07T15:08:50.853 に答える
137

,キャラクターに分割します。

var string = "0,1";
var array = string.split(",");
alert(array[0]);
于 2012-11-07T15:08:50.767 に答える
95

これはES6で簡単に実現できます。

Array.from('string') ;を使用して、文字列を配列に変換できます。

Array.from("01")

console.log になります

['0', '1']

これはまさにあなたが探しているものです。

于 2016-06-28T03:27:52.867 に答える
69

文字列がすでにリスト形式になっている場合は、JSON.parse を使用できます。

var a = "['a', 'b', 'c']";
a = a.replace(/'/g, '"');
a = JSON.parse(a);
于 2015-09-05T19:27:55.890 に答える
22

このような単純な配列メンバーには、JSON.parse を使用できます。

var listValues = "[{\"ComplianceTaskID\":75305,\"RequirementTypeID\":4,\"MissedRequirement\":\"Initial Photo Upload NRP\",\"TimeOverdueInMinutes\":null}]";

var array = JSON.parse("[" + listValues + "]");

これにより、数値の配列が得られます。

変数値は array.length=1 のようになりました

値の出力

array[0].ComplianceTaskID
array[0].RequirementTypeID
array[0].MissedRequirement
array[0].TimeOverdueInMinutes
于 2013-07-10T03:51:32.300 に答える
18

使用できますsplit

参照: http://www.w3schools.com/jsref/jsref_split.asp

"0,1".split(',')

于 2012-11-07T15:09:00.160 に答える
11

次のように、匿名関数で組み込みの map 関数を使用します。

string.split(',').map(function(n) {return Number(n);});

[編集] 使用方法は次のとおりです

var string = "0,1";
var array = string.split(',').map(function(n) {
    return Number(n);
});
alert( array[0] );
于 2014-09-24T22:07:30.047 に答える
2

正規表現

のより強力な代替手段としてsplit、使用できますmatch

"0,1".match(/\d+/g)

let a = "0,1".match(/\d+/g)

console.log(a);

于 2020-08-25T19:07:22.480 に答える