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