【问题标题】: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)

【问题讨论】:

标签: javascript console.log


【解决方案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);

      【讨论】:

        猜你喜欢
        • 2018-03-04
        • 1970-01-01
        • 2018-07-04
        • 2019-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-30
        相关资源
        最近更新 更多