var a = [a,b,c,d,1,2,3,4];
var half = a.length/2;
var c = [];
for(var i = 0; i < half; i++)
{
c.push(a[i]);
c.push(a[half + i]);
}
a = c;
通用的解决方案:
设置r
适当的值,并确保该数组长度对应于该值。例如,如果r
是2,字母数相对于位数的比例为2:1
,因此阵列,len
的长度,应为3.
function mix(a:Array, r:Number):void
{
var len1 = a.length * r/(r + 1);
var len2 = a.length - len1;
var c = [];
for(var i = 0; i < len2; i++)
{
for(var j = 0; j < r; j++)
c.push(a[i * r + j]);
c.push(a[len1 + i]);
}
trace(c.join());
}
var r = 2; //two letters per one digit
//8 letters and 4 digits
var a = ['a','b','c','d','e','f','g','h','1','2','3','4'];
mix(a, r) // a,b,1,c,d,2,e,f,3,g,h,4
r = 3; //three letters per one digit
//9 letters and 3 digits
a = ['a','b','c','d','e','f','g','h','i','1','2','3'];
mix(a, r); // a,b,c,1,d,e,f,2,g,h,i,3
感谢的倍数,但是如果它不是半例如,如果我有一个数组 - [a,b,c,d,e,f,1,2]并且我想[a,b,1,c,d,2,e,f] – undefined
@ undefined查看我的更新 – Amarghosh
非常感谢Amarghosh。 – undefined