在ES6中,我可以使用
[for(i1 of [0, 1]) for(i2 of [0, 1]) [i1, i2]]
并获取
[[0, 0], [1, 0], [0, 1], [1, 1]]
我可以构建一个像
str = '[for(i0 of [0, 1]) for(i1 of [0, 1]) [i0, i1]]'
或
str = '[for(i1 of [0, 1]) for(i2 of [0, 1]) for(i3 of [0, 1]) [i1, i2, i3]]'.
如何评估/执行这样的字符串?
答案 0 :(得分:2)
您可以像在ECMAScript 5中那样做。使用eval
:
var arr = eval(str);
或new Function
:
var arr = new Function('return' + str)();
答案 1 :(得分:0)
使用System.module
或System.define
。
来自http://www.2ality.com/2014/09/es6-modules-final.html:
System.module(source, options?)
评估源代码中的JavaScript代码到模块(通过promise以异步方式传递)。
System.set(name, module)
用于注册模块(例如,您通过System.module()创建的模块)。
System.define(name, source, options?)
都会在源代码中评估模块代码并注册结果。