Javascriptで、PHP(配列)と同じ方法で文字列を配列としてキャストするにはどうすればよいですか。
//PHP
$array = (array)"string"
基本的に、配列または文字列にすることができる変数があり、文字列の場合は、インラインコマンドを使用して配列にします。
Javascriptで、PHP(配列)と同じ方法で文字列を配列としてキャストするにはどうすればよいですか。
//PHP
$array = (array)"string"
基本的に、配列または文字列にすることができる変数があり、文字列の場合は、インラインコマンドを使用して配列にします。
ハッキーですが、動作します:
[].concat(arrayOrString);
//Usage:
[].concat("a");
//["a"]
[].concat(["a"]);
//["a"]
JavaScript はプロトタイピング言語であり、型キャスト システムはありません。
1 つの解決策は、変数が文字列かどうかを確認し、それを配列に変換することです。例えば :
if (typeof someVariable == 'string') someVariable = [someVariable];
PHP で、 (ex: )のようなstringをチェックすると、次のようになります。$array = 'string';
$array = (array) $array; // ex: "string" becomes array("string")
JavaScript に相当するものは次のようになります。
arr = typeof arr == 'string' ? [arr] : arr;
変数arr
が必ずしも文字列ではない場合は、次を使用できますinstanceof
。
arr = arr instanceof Array ? arr : [arr];
var str = "string";
var array = str.split('');
console.log(array); // ['s', 't', 'r', 'i','n','g']
jQueryでできます...
var arr = "[1,2,3,4,5]";
window.x = $.parseJSON(arr);
console.log(x);//cast as an array...
次のようなものがあっても機能します
[{"key":"value"}]
ただし、このようなものがある場合、これは機能しない可能性があります...
[{key:"value"}] // different is the " (double quotes) on key
このようにしてください
"sample".split("");
そしてあなたは得るでしょう
["s", "a", "m", ...]
JS で Array にキャストすることはできませんが、単純な 3 項演算で必要なことができます。
var str = 'string';
var arr = (str instanceof Array) ? str : [ str ];
これは、配列以外のオブジェクトまたはプリミティブ値に対して機能します。ここで実際のArray
オブジェクトとstring
プリミティブのみに遭遇できることが確実な場合は、次の方法が少し高速です。
var arr = (typeof str === 'string') ? [ str ] : str;
"1,2,3".split(",")
=> ["1", "2", "3"]
スプリット()を使用する
ヴァルの提案は、配列の配列を持つ文字列にも機能します
var str = "[[1121,1],[1122,2],[1123,3]]";
var arr = $.parseJSON(str);
console.log(arr); //returns array of arrays