原数组:arr = [0,1,2,3,4]
新数组:newArr = [];
指定值 i = 0;//i可以是原数组的任意一个值然后根据i的值和原数组 组成新的数组newArr
原数组下标i位置的元素 需要是新数组下标2的元素
剩下的元素依次排序
-----------------------------------
例如:
i=0;
newArr应该是[3,4,0,1,2]
i=1;
newArr应该是[4,0,1,2,3]
i=4;
newArr应该是[2,3,4,0,1]
-----------------------------------
求指导!js数组操作 排序

解决方案 »

  1.   


    function calc(i, oldArr) {
    var i = i || 0,
    oldArr = oldArr || [0,1,2,3,4,5,6,7,8,9,10],
    newArr = [],
    len = oldArr.length,
    half = (oldArr.length - 1) / 2; for(var j = 0; j < len; j++) {
    if(j < half) {
    newArr.push((i - (half - j) < 0) ? len + i - (half - j) : (i - (half - j)));
    } else if(j > half) {
    newArr.push(i + (j - half));
    } else {
    newArr.push(i)
    }
    }
    console.log(newArr);
    return newArr;
    }
    calc(1);
      

  2.   


    var arr = [0,1,2,3,4];
    var newArr = [];
    var i=0;
    newArr = arr.slice((3+i)%arr.length).concat(arr).slice(0,arr.length);
    alert(newArr);