我有一个简单的一维string数组:

var arr = ["M","U","Z","H","B","K","S","N","T","C","E","J","I","T","I","R","P","R","C","C","S","H","I","C","P","M","D","H","B","N","G","B","A"];

想对其进行a-z的顺序排序

arr.sort(function(v1,v2){return v1>v2});

//["P", "A", "R", "M", "B", "K", "B", "G", "B", "C", "E", "J", "I", "H", "I", "D", "M", "H", "C", "C", "C", "H", "I", "N", "N", "P", "R", "S", "S", "T", "T", "U", "Z"]

图片描述

我操作错误了?哪里出了问题,完全蒙了 ==!

我把字母转成小写,一样的。

我把字母全部转成unique的编码看一下:

arr.map(function(v){
    //将字符转成unique
    return v.charCodeAt(0);
}).sort(function(v1,v2){
    return v1>v2;
}).map(function(v){
    //在讲unique转成字符
    return String.fromCharCode(v);
});

还不行,百思不得姐。

最后查询文档得结果:

sort返回值有3种,

1:正序排序
-1:倒叙排序
0:保持不变

最后:成功解决。

arr.sort(function(v1,v2){
    return v1>v2?1:-1;
})

总结:不知道为什么会掉入这个坑里。主要还是自己大意了,经常用filter,map,forEach,给弄混淆了。


jsoncode
4k 声望786 粉丝

I'm jsoncode