评估ES6阵列理解字符串

时间:2014-12-11 06:43:17

标签: javascript arrays eval list-comprehension ecmascript-6

在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]]'.

如何评估/执行这样的字符串?

2 个答案:

答案 0 :(得分:2)

您可以像在ECMAScript 5中那样做。使用eval

var arr = eval(str);

new Function

var arr = new Function('return' + str)();

答案 1 :(得分:0)

使用System.moduleSystem.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?)都会在源代码中评估模块代码并注册结果。