Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将字符串转换为多维数组_Javascript_Multidimensional Array - Fatal编程技术网

Javascript 将字符串转换为多维数组

Javascript 将字符串转换为多维数组,javascript,multidimensional-array,Javascript,Multidimensional Array,我有一根绳子 var myString = "['Item', 'Count'],['iPad',2],['Android',1]"; 我需要将其转换为一个数组,其中: myArray[0][0] = 'Item'; myArray[0][1] = 'Count'; myArray[1][0] = 'iPad'; myArray[1][1] = 2; 等等 字符串的长度可以不同,但始终采用上述格式。我尝试过拆分、拼接和任何其他我能想到的“ing”,但我没有得到它 有人能帮忙吗?如果字符串肯

我有一根绳子

 var myString = "['Item', 'Count'],['iPad',2],['Android',1]";
我需要将其转换为一个数组,其中:

myArray[0][0] = 'Item';
myArray[0][1] = 'Count';
myArray[1][0] = 'iPad';
myArray[1][1] = 2;
等等

字符串的长度可以不同,但始终采用上述格式。我尝试过拆分、拼接和任何其他我能想到的“ing”,但我没有得到它


有人能帮忙吗?

如果字符串肯定是安全的,最简单的方法是将
[
]
连接到开头和结尾,然后
评估它

var arr = eval("[" + myString + "]");

如果您想要更高的安全性,请对字符串使用双引号,并以相同的方式使用
JSON.parse()

var myString = '["Item", "Count"],["iPad",2],["Android",1]';

var arr = JSON.parse("[" + myString + "]");
这将限制您使用受支持的JSON数据类型,但给定您的示例字符串,它会很好地工作。

像这样编写代码

var myString = "[['Item', 'Count'],['iPad',2],['Android',1]]";
而且

 var arr = eval(myString);
试试这个:

JSON.parse("[['Item', 'Count'],['iPad',2],['Android',1]]".replace(/\'/g,"\""))

我尝试使用eval,但在我的情况下,它不起作用。。。我需要的是将字符串转换为对象数组。这是我的字符串(ajax请求结果):

当我尝试时:

x = "{'printjob':{'bill_id':7998,'product_ids':[23703,23704,23705]}}";
eval(x);
我收到一个“意外令牌:”错误

我的解决办法是:

x = "{'printjob':{'bill_id':7998,'product_ids':[23703,23704,23705]}}"; 
x = "temp = " + x + "; return temp;"
tempFunction = new Function (x);
finalArray = tempFunction();
现在有一个最终的目标雷


我希望能提供帮助

@RoyiNamir:我的回答中已经提到了这一点,但我添加了修改后的字符串以澄清问题。太好了!我已经找了一段时间了!谢谢哇!非常感谢您需要添加的评估功能
最后(
eval(“[”+myString+“];”)
eval
是危险的,您不应该在用户可以以任何方式进行交互的任何内容上使用它<代码>新函数(字符串)
与eval一样危险,请确保用户不能更改对象“”中的任何属性。
x = "{'printjob':{'bill_id':7998,'product_ids':[23703,23704,23705]}}"; 
x = "temp = " + x + "; return temp;"
tempFunction = new Function (x);
finalArray = tempFunction();