http://topic.csdn.net/u/20070920/19/4e1e843f-02e4-4b2a-8166-9f034d9c5847.html
是这个帖子的,我主要不解的地方是你对数组加了属性tempA[i].objddValue=a[i];
我测试是得不到结果的,之前还看过你的一个表格排序,你也用了这样的方法,
能解释一下吗
是这个帖子的,我主要不解的地方是你对数组加了属性tempA[i].objddValue=a[i];
我测试是得不到结果的,之前还看过你的一个表格排序,你也用了这样的方法,
能解释一下吗
而真正需要排序的是a
所以排a里的每一个元素附到tempA上的每一个元素上
然后对tempA排序
然后把附在tempA元素上的a元素取回到a里去
就完成了对a的排序。
tempA[i].objddValue=a[i];
----重复上一贴内容:
整段代码的目的是想减少排序函数(比较函数)的对象调用层次。
对象调用层次越少,速度越快。
版主我还是没有明白上面的意思,alert出来是undefine的,它的作用是什么,
我加分帮忙好吗?
tempA[i].objddValue=a[i]
这个写法的意义
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>New Page 2</title>
</head><body>
自己调整a的长度,和if里的false/true,进行比较
</body></html>
<script >
var a=[["62","ccc","12"],
["59","study","8"],
["61","aaa","12"],
["13","商务部1组1","5"],
["1","研发部","12"],
["3","研发部2组","1"],
["4","商务部","12"],
["55","aa","54"]]; var d1=new Date();; if(false)//按字符串排序,如果数据量少于2000可以这样
{
a.sort(function(a1,a2){return (a1[0] >a2[0])?1:-1;});
}
else //按字符串排序,如果数据量很大可以这样
{
var tempA=new Array();
for(var i=a.length-1;i >-1;i--){
tempA[i]=new String(a[i][0]);
tempA[i].objValue=a[i]; //String对象加自定义属性,将需要排序的对象附在String对象上
}
tempA.sort(); //对String对象数组排序
for(var i=a.length-1;i >-1;i--) a[i]=tempA[i].objValue; //将附在排序好的String对象上的自定义属性取回到数组A}
alert(a.length+"---"+(new Date()-d1));
//alert(a.join("\n"));
//
</script >