[英]Covert 2D array in string to 2D array
我觉得问这个问题很愚蠢。 我在这样的字符串中有一个二维数组:
var data = "[['a', 'b', 'c'],['d', 'e', 'f'],['x', 'y', 'z']]";
我正在尝试将其转换为
var dimensional_array = [['a', 'b', 'c'],['d', 'e', 'f'],['x', 'y', 'z']];
任何帮助,将不胜感激。 谢谢你们!
这是实现您想要做的事情的“漫长的道路”。 我首先通过以下方式将字符串撕开:
data.split("],[");
将数组拆分为 3 部分temp_arr
拆分第二维final_arr
var data = "[['a', 'b', 'c'],['d', 'e', 'f'],['x', 'y', 'z']]"; data = data.substring(2); data = data.slice(0, -2); const dimensional_array = data.split("],["); const final_arr = []; for (let i = 0; i < dimensional_array.length; i++) { var temp_string = dimensional_array[i]; temp_string = temp_string.replace(/'/g, ""); const temp_arr = temp_string.split(", "); final_arr.push(temp_arr); } console.log(final_arr);
如果您信任data
中包含的字符串来表示 JavaScript 数组,则可以使用Function
构造函数对其进行评估,即在您的情况下:
var dimensional_array = Function(`return(${data})`)();
由于这本质上是一个不安全的操作(类似于eval
),如果data
的内容可能由外部源控制(如用户输入、API 调用的结果等),则不应使用它。 另请注意,某些网站会阻止使用带有内容安全策略标头的Function
构造函数。
var data = "[['a', 'b', 'c'],['d', 'e', 'f'],['x', 'y', 'z']]"; var dimensional_array = Function(`return(${data})`)(); console.log(dimensional_array);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.