sort() 方法用于对数组的元素进行排序。

但是排序结果就有点坑了,都不按常规出牌的:

// 看上去正常的结果:
['Google', 'Apple', 'Microsoft'].sort(); // ['Apple', 'Google', 'Microsoft']; // apple排在了最后:
['Google', 'apple', 'Microsoft'].sort(); // ['Google', 'Microsoft", 'apple'] // 无法理解的结果:
[10, 20, 1, 2].sort(); // [1, 10, 2, 20]

1、对了,跟想像中一样;
2、是因为字符串根据ASCII码进行排序,而小写字母a的ASCII码在大写字母之后,可以理解;
3、什么鬼?三岁小孩都不会错,现在居然...

看了大神的一些讲解是:
因为Array的sort()方法默认把所有元素先转换为String再排序,结果'10'排在了'2'的前面,因为字符'1'比字符'2'的ASCII码小。
还好有大神讲解,不然掉了sort()的坑都不知怎么爬上来。

数字大小排序,就要用比较方法来写了:

var arr = [10, 20, 1, 2];
//方法一
function sortNum01(x, y) {
if (x < y) {
return -1;
}
if (x > y) {
return 1;
}
return 0;
}; //方法二
function sortNum02(x, y) {
return x -y;
}; alert(arr.sort(sortNum01))// [1, 2, 10, 20]
alert(arr.sort(sortNum02))// [1, 2, 10, 20]

忽略大小写,按照字母序排序(先把字符串都变成大写或者都变成小写比较,对原来arr没影响):

var arr = ['Google', 'apple', 'Microsoft'];
arr.sort(function (s1, s2) {
x1 = s1.toUpperCase();
x2 = s2.toUpperCase();
if (x1 < x2) {
return -1;
}
if (x1 > x2) {
return 1;
}
return 0;
});
alert(arr);// ['apple', 'Google', 'Microsoft']

原文地址:http://www.qdfuns.com/notes/34750/0aadfcc0dde6a36ca9ab59613d285102.html

最新文章

  1. 关于hasNextInt判断后无限循环输出else项的解决办法
  2. javascript 多线程Web Worker不引用外部js文件的方法
  3. winform下的智能提示框
  4. C++中的vector
  5. 传说中的WCF(12):服务器回调有啥用
  6. 题外话(简识UML语言)
  7. C++ Primer 5th 第4章 表达式
  8. 什么是UML类图
  9. HTTP请求和数据安全
  10. Quick Sort(三向切分的快速排序)(Java)
  11. 关于Spring Cloud的核心特性
  12. js之prototype 原型对象
  13. Animation和Animator 的区别
  14. MS SQL大值数据类型varchar(max)、nvarchar(max)、varbinary(max)
  15. iOS NSRunloop的简单理解
  16. JanusGraph 图数据库安装小记 ——以 JanusGraph 0.3.0 为例
  17. BBScan — 一个信息泄漏批量扫描脚本
  18. Keil调试程序如何查看变量
  19. Shiro 集成Spring 使用 redis时 使用redisTemplate替代jedisPool(五)
  20. matlab 中try/catch语句

热门文章

  1. D - Sigma Function 1~n内有多少个约数和为偶数
  2. HTML5之本地存储localstorage
  3. CentOS7安装mysql提示“No package mysql-server available
  4. Groovy基本类型与运算符
  5. ORA-06519: 检测到活动的自治事务处理,已经回退
  6. TLS,SSL,HTTPS with Python(转)
  7. JNDI架构提供了一组标准的独立于命名系统的API
  8. html 模版
  9. shell bash使用,包括判断文件或文件夹是否存在举例
  10. faceswap