Javascript快速数组声明

Javascript快速数组声明,javascript,perl,arrays,Javascript,Perl,Arrays,是否有一种Javascript等价于Perl的qw()方法来快速创建数组? i、 e 没有内置构造,但可以执行以下任一操作: var myarray = 'one two three'.split(' '); // splits on single spaces 或 要“快速”写入数组,可以执行以下操作: var x = 'foo bar baz'.split(' '); 特别是对于大型阵列,这比以下内容更容易键入: var x = ['foo', 'bar', 'baz']; 尽管很明显

是否有一种Javascript等价于Perl的qw()方法来快速创建数组? i、 e


没有内置构造,但可以执行以下任一操作:

var myarray = 'one two three'.split(' '); // splits on single spaces


要“快速”写入数组,可以执行以下操作:

var x = 'foo bar baz'.split(' ');
特别是对于大型阵列,这比以下内容更容易键入:

var x = ['foo', 'bar', 'baz'];

尽管很明显,使用
.split()
比只写出整个数组的性能要差得多。

它不会编译(至少在FF中)。我可以做vararray=[1,2,3];但不是var-array=[1,2,3]。引用字符串:
var-array=['1','2','3']
@Nikki我想关键是他不想引用每个字符串。在javascript中,除非字符串是对象字段名,否则必须引用字符串。数组可以用数字、字符串、数组或对象初始化。变量数组:数组=[1,“2”,[1,2,3],{value:4}];变量字典:Object={one:1,two:two,three:[1,2,3],three:{value:4};为什么
.split(/\s+/)
而不是
.split(“”)
?后者似乎更快。@Mathias=>Perl的
qw/
运算符将在可变宽度的空格上拆分。我已经更新了我的答案,包括更快的单字符分割,以及
qw
cloneCool,我不知道
qw/
是这样工作的。谢谢你的解释!第一种方法是糟糕的形式。无需每次运行脚本时都花费不必要的执行时间,只需为自己节省一次按键时间。总之,可维护性和可读性比执行时间的微小增长更重要。@Justin Johnson:没错!这就是为什么我建议键入整个数组。@rjh与文字数组声明一样,syntnax有什么不可维护或不可读取的地方?@Justin:qw()风格的函数更容易阅读,而且由于IE不支持文字数组声明中的尾随逗号,在不产生语法错误的情况下,添加或删除新项目更容易。即使优势很小,我认为这种语法优化是没有意义的,除非构造在一个紧密的循环中。
function qw (str) {return str.match(/\S+/g)}

var myarray = qw(' one two  three '); // extracts words
var x = 'foo bar baz'.split(' ');
var x = ['foo', 'bar', 'baz'];