文字列をJavaScript配列に変換するにはどうすればよいですか?
コードを見てください:
var string = "0,1";
var array = [string];
alert(array[0]);
この場合、alert
ポップアップし0,1
ます。配列の場合はをポップアップし、呼び出された0
場合alert(array[1]);
はをポップアップし1
ます。
そのような文字列をJavaScript配列に変換する機会はありますか?
文字列をJavaScript配列に変換するにはどうすればよいですか?
コードを見てください:
var string = "0,1";
var array = [string];
alert(array[0]);
この場合、alert
ポップアップし0,1
ます。配列の場合はをポップアップし、呼び出された0
場合alert(array[1]);
はをポップアップし1
ます。
そのような文字列をJavaScript配列に変換する機会はありますか?
回答:
そのような単純な配列メンバーの場合は、を使用できますJSON.parse
。
var array = JSON.parse("[" + string + "]");
これにより、数値の配列が得られます。
[0, 1]
を使用.split()
すると、文字列の配列になります。
["0", "1"]
JSON.parse
サポートされているデータ型に制限されることに注意してください。undefined
または関数のような値が必要な場合はeval()
、またはJavaScriptパーサーを使用する必要があります。
を使用し.split()
たいが、数値の配列も必要な場合は、を使用できますArray.prototype.map
。ただし、IE8以下の場合は、shimを使用するか、従来のループを作成する必要があります。
var array = string.split(",").map(Number);
JSON.parse();
IE6、IE7では利用できないことにも注意してください。この場合、私String.split(',');
はもっと簡単だと思います。
var array = (new Function("return [" + string + "];"))()
。.split()
数値が必要ない場合は使用しても問題ありません。そうでない場合は、結果をマッピングする必要があります。
eval
)注意してください。配列にクライアント側の入力からの値が含まれている場合、これは安全ではありません。
これはES6で簡単に実現できます。
Array.from( 'string')を使用して文字列を配列に変換できます。
Array.from("01")
console.log
['0', '1']
それはまさにあなたが探しているものです。
JSON.parse
ているArray.from
ので、コードをからに移動しましたES6
。ありがとうRay Kim
Array.from("0, 1, 233")
戻ってきます。["0", ",", " ", "1", ",", " ", "2", "3", "3"]
[0, 1, 233]
Set
文字列の場合にのみ信頼できます。
var array = (new Function("return [" + str+ "];")());
var string = "0,1";
var objectstring = '{Name:"Tshirt", CatGroupName:"Clothes", Gender:"male-female"}, {Name:"Dress", CatGroupName:"Clothes", Gender:"female"}, {Name:"Belt", CatGroupName:"Leather", Gender:"child"}';
var stringArray = (new Function("return [" + string+ "];")());
var objectStringArray = (new Function("return [" + objectstring+ "];")());
JSFiddle https://jsfiddle.net/7ne9L4Lj/1/
- JSON.parse("[" + string + "]"); // throw error
- string.split(",")
// unexpected result
["{Name:"Tshirt"", " CatGroupName:"Clothes"", " Gender:"male-female"}", " {Name:"Dress"", " CatGroupName:"Clothes"", " Gender:"female"}", " {Name:"Belt"", " CatGroupName:"Leather"", " Gender:"child"}"]
そのような単純な配列メンバーの場合、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
ES6を使用する別のオプションは、Spread構文を使用することです。
var convertedArray = [..."01234"];
var stringToConvert = "012";
var convertedArray = [...stringToConvert];
console.log(convertedArray);
次のように、組み込みの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] );
JavaScriptでカンマ区切りの文字列を配列に変換する方法は?
var string = 'hello, world, test, test2, rummy, words';
var arr = string.split(', '); // split string on comma space
console.log( arr );
//Output
["hello", "world", "test", "test2", "rummy", "words"]
以下の方法を使用してJavaScriptで文字列を配列に変換するその他の例:
制限引数付きのSplit()
このリンクをチェックしてください==> https://www.tutsmake.com/javascript-convert-string-to-array-javascript/
文字「[」、「]」を削除し、「、」で分割します
let array = stringObject.replace('[','').replace(']','').split(",").map(String);
Split( "、")は、コンマを含む文字列を文字列配列に変換できます。これが私のコードスニペットです。
var input ='Hybrid App, Phone-Gap, Apache Cordova, HTML5, JavaScript, BootStrap, JQuery, CSS3, Android Wear API'
var output = input.split(",");
console.log(output);
[「ハイブリッドアプリ」、「Phone-Gap」、「Apache Cordova」、「HTML5」、「JavaScript」、「BootStrap」、「JQuery」、「CSS3」、「Android Wear API」]
var i = "[{a:1,b:2}]",
j = i.replace(/([a-zA-Z0-9]+?):/g, '"$1":').replace(/'/g,'"'),
k = JSON.parse(j);
console.log(k)
// =>正規表現を宣言する
[a-zA-Z0-9] =>すべてのaz、AZ、0-9に一致
(): =>一致したすべての要素をグループ化
$ 1 =>置換文字列は、正規表現の最初の一致グループを指します。
g =>グローバルフラグ
このように,
コンマとsplit('')
このような文字列を置き換えて['0', '1']
、結果をにします。さらに、結果をparseInt()
にラップして、要素を整数型に変換できます。
it('convert string to array', function () {
expect('0,1'.replace(',', '').split('')).toEqual(['0','1'])
});
string[0] === '0'
ます(つまり、質問では)。ほとんどの場合、文字列を文字の配列として扱い、配列メソッドを使用できます。