我有一个简单的一维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,给弄混淆了。