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

求js算法,对ids列进行排序,并且保证names列的值对应关系不变
<script type="text/javascript">
var ids=",1,5,2,8";
var names=",a,x,b,g";
//求以ids进行升序排列,并且保证和names的值的下标对应关系不变(即1-a,5-x,2-b,8-g)
//求得的结果如下:求js算法
ids=",1,2,5,8";
names=",a,b,x,g";
</script>

------解决方案--------------------
1.自己写个普通冒泡去排序ids,在ids交换位置的时候也同时交换names的位置,相当于names就是个附庸

2.利用sort的传入参数(一个排序函数),有点麻烦,只是有个思路,未尝试
------解决方案--------------------
引用:

var ids=",1,5,2,8".split(',');
var names=",a,x,b,g".split(',');
 
for(var i=0;i<ids.length;i++) ids[i]=[ids[i],names[i]];
ids.sort();
for(var i=0;i<ids.length;i++) {
names[i]=ids[i][1];
ids[i]=ids[i][0];
}
alert( ids )
alert( names )

数字在两位以就会出错
var ids=",16,5,2,8"