自动将字符串转换为数组中的变量
Posted
技术标签:
【中文标题】自动将字符串转换为数组中的变量【英文标题】:Convert string into variable in array automatically 【发布时间】:2022-01-24 03:44:43 【问题描述】:我在尝试将字符串转换为数组中的变量时遇到问题。
变量是:
const n = 1; const s = -1;
数组字符串:
let walk = ['n', 's', 'n', 's', 'n', 's', 'n', 's', 'n', 'n'];
我想自动转换成这个变量数组:
let walk = [n, s, n, s, n, s, n, s, n, n];
我正在尝试拆分,但数组仍然不是 var:
let text = walks.toString().split(',').join('-')
console.log(text)
【问题讨论】:
在上面的 const 中 这有帮助吗? "Variable" variables in javascript 变量示例 是的,它是一个 const var @lost_in_magento 【参考方案1】:正如@Unimitigated 所说,不建议使用eval()
。
更多详情请参考此链接Never use eval()!
为了更好的方式,没有eval()
。你可以试试这个方法
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 + ')')();
);
我希望这会很有用。
【讨论】:
【参考方案2】:您可以将s
和n
放入一个对象中。
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])
)
有关通过另一个变量访问变量的更多信息,请参阅this question。
【讨论】:
【参考方案3】:您可以使用eval
,但通常不推荐。
const n = 1; const s = -1;
let walk = ['n', 's', 'n', 's', 'n', 's', 'n', 's', 'n', 'n'].map(eval);
console.log(walk);
【讨论】:
以上是关于自动将字符串转换为数组中的变量的主要内容,如果未能解决你的问题,请参考以下文章