javascript中用数组sort排序问题
来源:互联网 发布:powermill编程 编辑:程序博客网 时间:2024/05/01 03:52
对于javascript中sort函数之前只是简单使用,并没有详细的追究其原理,今天写了一段简单的代码,结果就发现问题了。。。
<script type="text/javascript"> var years = new Array(1993,1999,1989,2001,2010); var sortYeays=years.sort(); document.write("排序前:"+years); document.write("排序后:"+sortYeays);</script>
执行结果如下:
排序前:1989,1993,1999,2001,2010排序后:1989,1993,1999,2001,2010
到这里可能你也会发现问题,排序前应该是:1993,1999,1989,2001,2010。但结果却是排序后的结果。。
查阅资料后发现在javascript中sort函数是对数组的引用排序,不会产生副本。知道这个原因就不难解释上面的现象了,上面的代码执行var sortYeays=years.sort();后,对years数组的引用进行了排序,这样在存储空间中years保存的值就是排序之后的结果。后面再调用years数组,就是用的新的结果值。而不是在存储空间中开辟一块years数组的副本(用来保存sort后的结果值)。所以就会造成上面的执行结果,但下面的代码就会得到我们想要的结果<script type="text/javascript"> var years = new Array(1993,1999,1989,2001,2010); document.write("排序前:" + years); document.write("排序后:"+years.sort()); </script>执行结果如下:排序前:1993,1999,1989,2001,2010排序后:1989,1993,1999,2001,2010啰嗦了半天,总之在javascript中的sort函数是在原数组上进行排序,不生成副本。。。。
- javascript中用数组sort排序问题
- JavaScript中用sort方法进行二维数组排序
- 【Javascript】数组排序sort()
- javascript数组排序Sort()
- JavaScript中用sort方法进行二维数组排序 — 第5.2.5节
- 【JavaScript】数组sort()排序规则
- javascript 数组排序sort()用法
- JavaScript中的sort排序问题
- javascript 数组排序函数sort和reverse
- javascript中数组排序方法sort()用法
- JavaScript数组排序,Array.prototype.sort()
- javascript 的数组的sort() 排序。
- javascript之sort排序的问题
- Javascript数组的排序 sort()方法和reverse()方法
- JavaScript - Array对象的使用 及 数组排序 sort
- JavaScript 使用sort()方法来给数组排序
- JavaScript 数组 sort,reverse,冒泡排序,乱序
- Javascript数组的排序 sort()方法和reverse()方法
- 获取新浪实时股票行情数据
- Android系统如何实现UI的自适应
- SUSE LINUX下文件系统变只读的问题解决
- ps 列出实时进程
- linux中 likely与unlikely
- javascript中用数组sort排序问题
- 用js使得输入框input只能输入数字
- Android ListAdapter的高级功能
- python+flask实现简单博客
- 黑马程序员 java基础 函数 数组 查找与排序总结
- SQL查询~ 存在一个表而不在另一个表中的数据
- 函数指针
- ASIHTTPRequest详解 【经典3】
- WAS性能测试工具的使用