Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于初始化给定长度数组的模板文本_Javascript_Template Literals - Fatal编程技术网

Javascript 用于初始化给定长度数组的模板文本

Javascript 用于初始化给定长度数组的模板文本,javascript,template-literals,Javascript,Template Literals,我碰到了(如何初始化一个数组,如[{id:1},{id:2},…]) 公认的答案是: 让sampleData=Array.from({length:10},({u,i)=>({id:i})) console.log(sampleData)您可以使用 函数构造函数创建一个新的函数对象。呼叫 构造函数可以直接动态创建函数,但会受到影响 从安全性和类似(但不太重要)的性能 类似于eval的问题。但是,与eval不同,函数构造函数 允许在全局范围内执行代码,从而更好地 编程习惯和允许更有效的代码缩减

我碰到了(如何初始化一个数组,如
[{id:1},{id:2},…]

公认的答案是:

让sampleData=Array.from({length:10},({u,i)=>({id:i}))
console.log(sampleData)
您可以使用

函数构造函数创建一个新的函数对象。呼叫 构造函数可以直接动态创建函数,但会受到影响 从安全性和类似(但不太重要)的性能 类似于eval的问题。但是,与eval不同,函数构造函数 允许在全局范围内执行代码,从而更好地 编程习惯和允许更有效的代码缩减

var-template=`[${{id\':${++i}},”。重复(10)}]`
template=template.replace(/,]$/,']')//替换最后一个逗号
var parser=new函数(“{i}”,“return`”+template+“`;”);
var arr=解析器({i:0});

log(JSON.parse(arr))随意使用模板意味着您最终使用的是一个字符串,从性能角度来看,它不会很好。您可以尝试使用
JSON.parse
,这比
eval
更好,但不能再使用
++i
:/最后是的,需要使用
JSON.parse
,但是我还没有创建符合JSON的字符串,其中已经计算了
++I
。性能在这里不是问题。它可能很慢,我想知道的是,如果没有
eval
或标记功能up,它是否可能+1尽管它非常接近于
eval
,但我没有指定函数构造函数,这是我的缺点。我会等一段时间看看是否有更干净的解决方案,否则我会接受你的。谢谢你好,罗马尼亚!