共有3个问题:
比如有个数组是[1,2,3,4,5],循环他,依次输出2,1,0,1,2;如果数组是[1,2,3,4,5,6]呢,则依次输出2,1,0,0,1,2..
也许这个比较简单,因为我居然都算出来了。如下:
for(var a=0;a<5;a++) { i = Math.floor(Math.abs(a-(count-1)/2)); }
不过我担心效率不高。。求优化
第二,再求另一种算法,数组仍然是那个数组,但输出变为0,1,2,1,0或0,1,2,2,1,0....也就是倒序了一下。
求高手支招
算法上,已经没有什么可以优化的了。原生Math对象,已经是最优化的了。你可以这么写。
for(var i = 0; l = a.length; i<l;i++){
}
主要是把数组存在一个变量a里面,再循环时,再把a的长度length缓存在l中。
同意,这样写就很好了,还能怎么改进呢,期待。。。