以前回答的问题说这是最快的方式:
//nl is a NodeList
var arr = Array.prototype.slice.call(nl);
Run Code Online (Sandbox Code Playgroud)
在我的浏览器基准测试中,我发现它比这慢3倍:
var arr = [];
for(var i = 0, n; n = nl[i]; ++i) arr.push(n);
Run Code Online (Sandbox Code Playgroud)
它们都产生相同的输出,但我发现很难相信我的第二个版本是最快的方式,特别是因为人们在这里说了不同的.
这是我浏览器中的怪癖(Chromium 6)吗?或者有更快的方法吗?
编辑:对于任何关心的人,我选择了以下内容(这似乎是我测试的每个浏览器中最快的):
//nl is a NodeList
var l = []; // Will hold the array of Node's
for(var i = 0, ll = nl.length; i != ll; l.push(nl[i++]));
Run Code Online (Sandbox Code Playgroud)
EDIT2:我发现了一种更快的方法
// nl is the nodelist
var arr = [];
for(var i = nl.length; i--; arr.unshift(nl[i]));
Run Code Online (Sandbox Code Playgroud) 我想在Django中存储一个可变长度的浮点列表.有CommaSeparatedIntegerField,但是我可以使用这样的东西吗?是否最好只实现我自己的CommaSeparetedFloatField,或者是否有我完全遗漏的东西?谢谢.
s = 'blah blah blah... _ABC_superman_is_cool_CBA_ ...blah blah blah...'
Run Code Online (Sandbox Code Playgroud)
这只是一个例子,但我希望匹配_ABC_和_CBA_之间的所有内容.所以'superman_is_cool'._ABC _..._ CBA_可能有多个部分.
re.findall('_ABC_(.*)(?=_CBA_)', s)
Run Code Online (Sandbox Code Playgroud)
我先尝试过这个,但显然根本没有正常工作.