我的价值观自然是以这种形式出现的:
[1,2,3,4,5,6,7,8,9]我是针对一个服务器api开发的,它需要一个输入参数,如:
[1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9]有比简单的for循环更快或更多js风格的方法吗?
var f = function(values) {
var newList = [];
var i;
for (i = 0; i < values.length; i++) {
newList.push(values[i]);
newList.push(values[i]);
}
return newList;
}发布于 2013-10-17 05:35:57
您可以通过组合它们来避免.push()调用,因为.push()是可变的。
newList.push(values[i], values[i]);除此之外,我怀疑你会变得更快。
发布于 2013-10-17 05:40:03
您可以使用each函数。
这会减少你的步子。
var list=[1,2,3,4,5,6,7,8,9]
var newlist=[];
$.each(list,function(index,data){newlist.push(data);newlist.push(data)})希望这能有所帮助。
发布于 2013-10-17 05:53:50
尝试:[].concat.call([1,2,3,4,5,6,7,8,9],[1,2,3,4,5,6,7,8,9]).sort();
或者更一般的:
(function(){
return this.concat(this).sort(function(a,b){return a-b;});}
).call([1,2,10,20,30,40,50,60,70,80,9]);或者只是一个功能:
function(v) {
var i = v.length, nw = [];
while (i--) { nw.push(v[i],v[i]); }
return nw.reverse();
}或者使用map
var nw = ([1,2,3,4,5].map(function(a){this.push(a,a)},nw=[]),nw);我怀疑这个功能是最有效的。
https://stackoverflow.com/questions/19418960
复制相似问题