Tang ye

2011年11月28日

JavaScript中实现数组的排序、乱序和搜索

所有这些功能,用一个sort()就可以完成了。

1. 排序:
默认的sort()按字符编码排序的:

1 <script type="text/javascript">
2 <!--
3 var testArray=[3,324,5345,6546,134,5654,665];
4 testArray.sort();
5 alert(testArray);
6 //-->
7 </script>

现在要让它按照数值大小排序:

1 <script type="text/javascript">
2 <!--
3 var testArray=[3,324,5345,6546,134,5654,665];
4 testArray.sort(function(a,b){return a-b;});
5 alert(testArray);
6 //-->
7 </script>

只要传递一个比较函数给sort就可以了,如果比较函数的值小于0,则表示a必须出现在b前面,否则在b后面。

2. 乱序:
让比较函数随机传回-1或1就可以了:

1 <script type="text/javascript">
2 <!--
3 var testArray=[1,2,3,4,5,6,7,8,9,10,22,33,55,77,88,99];
4 testArray.sort(function(){return Math.random()>0.5?-1:1;});
5 alert(testArray);
6 //-->
7 </script>

 3. 搜索:

用sort()来玩搜索还蛮新鲜的,呵呵,看看是怎么玩的吧。
我现在要把数组里含有字母'a'的元素全部找出来,如果没有sort(),似乎只能用遍历了,遍历的效率…那个叫恐怖啊!!具体做法如下:

1 <script type="text/javascript">
2 <!--
3 var testArray=['df', 'rtr', 'wy', 'dafd', 'dfs', 'wefa', 'tyr', 'rty', 'rty', 'ryt', 'afds', 'wer', 'te'];
4 testArray.sort(function(a,b){return a.indexOf('a')==-1?1:-1;});
5 alert(testArray);
6 //-->
7 </script>

这样就把数组中含有字母'a'的元素全部放到数组前面啦,再经过一些简单的处理,就可以输出搜索结果了。

以上是我总结的三种在javascript中用sort()操作数组的方法,如果你有兴趣,你会发现sort()还有好多妙用呢……

posted @ 2011-11-28 09:52 Tang ye 阅读(349) 评论(1) 推荐(1)

2011年11月18日

[转帖]SQLServer中批量插入数据方式的性能对比

摘要: 昨天下午快下班的时候,无意中听到公司两位同事在探讨批量向数据库插入数据的性能优化问题,顿时来了兴趣,把自己的想法向两位同事说了一下,于是有了本文。公司技术背景:数据库访问类(xxx.DataBase.Dll)调用存储过程实现数据库的访问。技术方案一:压缩时间下程序员写出的第一个版本,仅仅为了完成任务,没有从程序上做任何优化,实现方式是利用数据库访问类调用存储过程,利用循环逐条插入。很明显,这种方式效率并不高,于是有了前面的两位同事讨论效率低的问题。技术方案二:由于是考虑到大数据量的批量插入,于是我想到了ADO.NET2.0的一个新的特性:SqlBulkCopy。有关这个的性能,很早之前我是亲自 阅读全文

posted @ 2011-11-18 14:06 Tang ye 阅读(153) 评论(0) 推荐(0)

导航

统计

点击右上角即可分享
微信分享提示