繁体   English   中英

将字符串中的二维数组转换为二维数组

[英]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']];

任何帮助,将不胜感激。 谢谢你们!

这是实现您想要做的事情的“漫长的道路”。 我首先通过以下方式将字符串撕开:

  1. 删除字符串开头的括号
  2. 删除字符串末尾的括号
  3. 使用data.split("],[");将数组拆分为 3 部分
  4. 循环遍历数组(现在分为 3 个)
  5. 创建一个临时字符串并删除单引号
  6. 通过逗号创建temp_arr拆分第二维
  7. 将第二维的最终结果推送到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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM