日期:2014-05-19  浏览次数:20373 次

|M| 200分求:幕白兄写的一段JS代码说明 补分贴..也还有一个问题没有看清
原贴:http://community.csdn.net/Expert/topic/5407/5407376.xml?temp=.4102594

其实那段JS主要是以下两句
ary[i]   =   new   Array(parseInt(table1.rows[i].cells[1].childNodes[1].innerHTML),table1.rows[i]);
table1.moveRow(ary[i][1].rowIndex,i+1);

我原来理解的做法为ary[i]   =   new   Array(parseInt(table1.rows[i].cells[1].childNodes[1].innerHTML),i);
table1.moveRow(ary[i][1]i+1);
这样只传了行号.但当有moveRow的时候行就出错了
而幕白兄给的table1.rows[i]这么一行整行的对像
然后在ary[i][1].rowIndex这里得到不管table1改变后的新行位置,进行移动

上面对行的移动已经理解现在不理解的是
ary   =   ary.sort(DoSort);    
//如果在C#里的DataView排序为ary.sort( "工资 ")   但这里为???
function   DoSort(e1,e2)
    {
          return   e2[0]   -e1[0];
          //上面是怎么进行排序的
    }
他如何给ary进行排序

------解决方案--------------------
<div id= "div1 "> </div> <script> var ary = new Array(3,2,1,4) ary.sort(DoSort); function DoSort(a1,a2) { div1.innerHTML += a1 + ", "+a2+ " <BR> "; return a1 -a2; } </script>
------解决方案--------------------
zyciis 老哥的号 好多啊.....
------解决方案--------------------
又见送分贴...
------解决方案--------------------
up
------解决方案--------------------
如果自己写就是这样子,但算法有点不同, 它的算法优一些. <div id= "div1 "> </div> <div id= "div2 " style= "color:Blue "> </div> <script> var ary = new Array(3,2,1,4) ary.sort(DoSort); ShowAry(); div1.innerHTML += " <BR> 下一次手工排序 <BR> "; ary = new Array(3,2,1,4) for(var j=ary.length-1;j> -1;j--) { for(var i=0;i <j;i++) { if(DoSort(ary[i],ary[i+1])> 0) { var temp = ary[i]; ary[i] = ary[i+1]; ary[i+1] = temp; } } } ShowAry(); function DoSort(a1,a2) { div1.innerHTML += a1 + ", "+a2+ " <BR> "; return a1 -a2; } function ShowAry() { div2.innerHTML += ary.join( ", ")+ " <BR> "; } </script>
------解决方案--------------------
lz不错 加油-_-#
------解决方案--------------------
一样的,利用函数里的比较方法进行排序
------解决方案--------------------
帮你顶!学习中!
------解决方案--------------------
对于一个指定谁来回答的问题,而且一天问两次(两个问题基本相同),我觉得我说送分也不为过吧!
如果lz觉得我的那句话伤害了你,我向你道歉.
------解决方案--------------------
前辈加油~你让我看到了希望......
看来我也是可以成功的...
------解决方案--------------------
路过