Tengo un problema cuando intento convertir una cadena en una variable en una matriz.
Las variables son:
const n = 1; const s = -1;La cadena de matriz:
let walk = ['n', 's', 'n', 's', 'n', 's', 'n', 's', 'n', 'n'];Quiero convertir automáticamente a esta matriz de variables:
let walk = [n, s, n, s, n, s, n, s, n, n];Estoy tratando de dividir pero la matriz aún no es una var:
let text = walks.toString().split(',').join('-') console.log(text)Podrías poner s y n en un objeto.
const variables = { n: 1, s: -1 }; let walk = ['n', 's', 'n', 's', 'n', 's', 'n', 's', 'n', 'n']; console.log( walk.map(variable => variables[variable]) )Consulte esta pregunta para obtener más información sobre cómo acceder a las variables a través de otra variable.
Podría usar eval , pero generalmente no se recomienda.
const n = 1; const s = -1; let walk = ['n', 's', 'n', 's', 'n', 's', 'n', 's', 'n', 'n'].map(eval); console.log(walk);Como dijo @Unimitigated, no se recomienda usar eval() .
Para obtener más detalles, consulte este enlace. ¡Nunca use eval()!
Para una mejor manera, sin eval() . Puedes probar este enfoque
const n = 1; const s = -1; const array = []; let walk = ['n', 's', 'n', 's', 'n', 's', 'n', 's', 'n', 'n'].map(value => { return Function('"use strict";return (' + value + ')')(); });Espero que esto sea útil.