日期:2014-05-16  浏览次数:20320 次

js数组操作问题、
原数组: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数组操作?排序

------解决方案--------------------

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);

------解决方案--------------------

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);