Me siento estúpido por hacer esta pregunta. Tengo una matriz 2D en una cadena como esta:
var data = "[['a', 'b', 'c'],['d', 'e', 'f'],['x', 'y', 'z']]";y estoy tratando de convertirlo a
var dimensional_array = [['a', 'b', 'c'],['d', 'e', 'f'],['x', 'y', 'z']];Cualquier ayuda sería apreciada. ¡Gracias a todos!
Si confía en la cadena contenida en data para representar una matriz de JavaScript, puede evaluarla utilizando el constructor de Function , es decir, en su caso:
var dimensional_array = Function(`return(${data})`)(); Dado que esto es intrínsecamente una operación insegura (similar a eval ), no debe usarse si el contenido de data podría ser controlado por una fuente externa (como la entrada del usuario, el resultado de una llamada a la API, etc.). También tenga en cuenta que algunos sitios web bloquean el uso del constructor de Function con encabezados de política de seguridad de contenido .
var data = "[['a', 'b', 'c'],['d', 'e', 'f'],['x', 'y', 'z']]"; var dimensional_array = Function(`return(${data})`)(); console.log(dimensional_array);Aquí está el "camino largo" para lograr lo que está buscando hacer. Primero desgarro la cuerda por:
data.split("],[");temp_arrfinal_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);