替代eval()执行字符串

时间:2019-05-28 21:04:12

标签: javascript string object

我的数组在Javascript中是A=['Apple','Peach','Orange'],有人向我传递了诸如“ A [1]”之类的字符串,如何将字符串“ A [1]”转换为可执行项,所以我可以获得'Peach'作为结果。

eval(A[1])曾经可以使用,但在这里是不允许的。

2 个答案:

答案 0 :(得分:1)

使用正则表达式,您可以解析出变量和索引,然后从窗口对象中获取它们。

A=['Apple','Peach','Orange'];

let string = "A[1]";
let variable = string.match(/[^[]*/)[0];
let index = string.match(/\[(.*)\]/)[1];
console.log(window[variable][index]);

答案 1 :(得分:0)

您可以按撇号拆分,然后过滤掉奇数数组成员:

var arrayString = "A=['Apple','Peach','Orange']"
var parsed = arrayString.split("'").filter(function(a, b){return b % 2});
console.log(parsed)