我的数组未正确排序。有人可以让我知道我做错了什么吗?
...
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()
以便正确放置“链接到 Google”。
编辑:更新以修复比较问题comment. https://stackoverflow.com/questions/5476736/javascript-sort-array/5476833?noredirect=1#comment16743050_5476833
参见示例 → http://jsfiddle.net/pF2Gv/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)