将字符串转换为数组

cyb*_*bat 17 javascript

在Javascript中,如何将字符串作为数组转换为与PHP(数组)相同的方式.

//PHP
$array = (array)"string"
Run Code Online (Sandbox Code Playgroud)

基本上我有一个变量,可以是一个数组或一个字符串,如果是一个字符串,我想使用内联命令使它成为一个数组.

Ped*_*nto 31

Hacky,但有效:

[].concat(arrayOrString);

//Usage:
[].concat("a");
//["a"]
[].concat(["a"]);
//["a"]
Run Code Online (Sandbox Code Playgroud)

  • [注意]与替代方案相比,这是相当缓慢的:http://jsperf.com/array-coerce (2认同)

Yan*_*hon 23

JavaScript是一种原型语言,没有类型转换系统.

一种解决方案是检查您的变量是否为字符串并将其转换为数组.例如 :

if (typeof someVariable == 'string') someVariable = [someVariable];
Run Code Online (Sandbox Code Playgroud)

在PHP中,如果你检查一个字符串,比如(ex :) $array = 'string';:

$array = (array) $array;  // ex: "string" becomes array("string")
Run Code Online (Sandbox Code Playgroud)

JavaScript等价物将是

arr = typeof arr == 'string' ? [arr] : arr;
Run Code Online (Sandbox Code Playgroud)

如果您的变量arr不一定是字符串,您可以使用instanceof:

arr = arr instanceof Array ? arr : [arr];
Run Code Online (Sandbox Code Playgroud)


And*_*old 7

var str    = "string";
var array  = str.split('');

console.log(array); // ['s', 't', 'r', 'i','n','g']
Run Code Online (Sandbox Code Playgroud)

  • 在PHP中执行`str =(array)"string"`导致`array("string")`not` array('s','t','r','i','n','g' )`. (3认同)