我的数组没有正确排序.有人能让我知道我做错了什么吗?
... sortArray = new Array ("hello","Link to Google","zFile","aFile"); //sort array if (dir == "asc") { sortArray.sort(function(a,b){return a - b}); } else { sortArray.sort(function(a,b){return b - a}); } for(var i=0; i<sortArray.length; i++) { console.log(sortArray[i]); }
日志按照输入的顺序显示它们.
解决方法
您希望在排序中进行比较,而不是减法:
if (dir == "asc") { sortArray.sort(function(a,b) { a = a.toLowerCase(); b = b.toLowerCase(); return a === b ? 0 : a > b : 1 : -1; }); } else { sortArray.sort(function(a,b) { a = a.toLowerCase(); b = b.toLowerCase(); return b === a ? 0 : b > a : 1 : -1; }); }
我也习惯了toLowerCase(),以便’适当地放置’链接到谷歌’.
编辑:根据comment.更新以修复比较问题