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

我有一个数组,如何依据这样的条件再重新生成一个数组?
旧数组的长度不定,现在的新数组要求,数组长度固定为7,如果旧数组小于等于7,那就内容不变,如果大于7,那么旧数组的最小下标与最大下标必须在新数组中,并且位置不变,那另外5个数据,需要从旧数组中,按均分等阶(不需要绝对均分)来显示,这个要如何实现呢?

例 [23][43][56][78][21][32][99][321][33][1][8][99][3]生成新数组内容为:

[23][56][21][99][33][8][3]

------解决方案--------------------
你自己都写出来了,就不会自己写么。。这里唯一需要考虑的就是一个问题了
按均分等阶(不需要绝对均分) 这个具体如何解释
------解决方案--------------------
function getNewArr(){
var oldArr=[1,2,3,4,5,6,7,8,9,10,11,12,13];
var newArr=new Array();
if(oldArr.length<=7) return oldArr;
newArr.push(oldArr[0]);
var spac=parseInt((oldArr.length-2)/5);
for(var i=0;i<oldArr.length-1;i+=spac)
{
newArr.push(oldArr[i]);
}
newArr.push(oldArr.length-1);
return newArr;
}