自动将字符串转换为数组中的变量

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】:

您可以将sn 放入一个对象中。

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);

【讨论】:

以上是关于自动将字符串转换为数组中的变量的主要内容,如果未能解决你的问题,请参考以下文章

如何将数组值转换为变量?

javascript中如何将获得的整型数值转换为字节数组

将 std::string 转换为无符号字符数组

如何将变量转换为数组

如何将变量转换为数组

将 C 字符数组转换为 Matlab 字符串 [Matlab 编码器]