20

Javascriptで、PHP(配列)と同じ方法で文字列を配列としてキャストするにはどうすればよいですか。

//PHP
$array = (array)"string"

基本的に、配列または文字列にすることができる変数があり、文字列の場合は、インラインコマンドを使用して配列にします。

4

12 に答える 12

39

ハッキーですが、動作します:

[].concat(arrayOrString);

//Usage:
[].concat("a");
//["a"]
[].concat(["a"]);
//["a"]
于 2013-09-27T19:36:10.317 に答える
26

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];
于 2012-10-27T18:29:23.383 に答える
7
var str    = "string";
var array  = str.split('');

console.log(array); // ['s', 't', 'r', 'i','n','g']
于 2012-10-27T18:27:32.350 に答える
4

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
于 2013-08-08T09:03:17.883 に答える
1

このようにしてください

"sample".split("");

そしてあなたは得るでしょう

["s", "a", "m", ...]
于 2012-10-27T18:32:15.530 に答える
0

JS で Array にキャストすることはできませんが、単純な 3 項演算で必要なことができます。

var str = 'string';
var arr = (str instanceof Array) ? str : [ str ];

これは、配列以外のオブジェクトまたはプリミティブ値に対して機能します。ここで実際のArrayオブジェクトとstringプリミティブのみに遭遇できることが確実な場合は、次の方法が少し高速です。

var arr = (typeof str === 'string') ? [ str ] : str;
于 2012-10-27T18:29:02.950 に答える
0
"1,2,3".split(",") 
=> ["1", "2", "3"]

スプリット()を使用する

于 2012-10-27T18:29:07.410 に答える
0

ヴァルの提案は、配列の配列を持つ文字列にも機能します

var str = "[[1121,1],[1122,2],[1123,3]]";
var arr = $.parseJSON(str);
console.log(arr); //returns array of arrays
于 2013-09-25T18:48:56.980 に答える