自动将字符串转换为数组中的变量
Convert string into variable in array automatically
我在尝试将字符串转换为数组中的变量时遇到问题。
变量是:
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)
您可以使用 eval
,但通常不推荐使用。
const n = 1; const s = -1;
let walk = ['n', 's', 'n', 's', 'n', 's', 'n', 's', 'n', 'n'].map(eval);
console.log(walk);
您可以将 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。
如@Unimitigated所说,eval()
不推荐使用
有关详细信息,请参阅此 link 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 + ')')();
});
我希望这会有用。
我在尝试将字符串转换为数组中的变量时遇到问题。
变量是:
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)
您可以使用 eval
,但通常不推荐使用。
const n = 1; const s = -1;
let walk = ['n', 's', 'n', 's', 'n', 's', 'n', 's', 'n', 'n'].map(eval);
console.log(walk);
您可以将 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。
如@Unimitigated所说,eval()
不推荐使用
有关详细信息,请参阅此 link 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 + ')')();
});
我希望这会有用。