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

位置排序的问题
//如数组:
arr=[3,2,1,8];
arr=arr.sort(function(a,b){return   b-a});
//sort方法后得到:8,3,2,1
//问题是sort方法前的arr[0]是3,现在的arr[0]是8,我现在怎么才能知道sort方法后的arr[0]是sort方法前的arr[3]呢?

------解决方案--------------------
sort之后就会进行排序的,
是正常
除非你在没有进行排序前记录下状态。
------解决方案--------------------
你这不撑着...
取一个拷贝 ar.slice()
然后爱咋咋滴...
------解决方案--------------------
<script>
arr=[3,2,1,3,8,3];
str=arr.join( " ");
arr.sort(function(a,b){return b-a});
alert( "排序后数组为: "+arr);
var n=0;
for(var i=0;i <arr.length;i++){
if(arr[i-1]!=arr[i]||str.indexOf(arr[i],n)==-1){
n=0;
}
alert(arr[i]+ "来自第 "+(str.indexOf(arr[i],n)+1)+ "个! ");
n=str.indexOf(arr[i],n)+1;
}
</script>
------解决方案--------------------
学习!顶