尝试使用 sort 方法对字符串数组进行排序时,我得到了看似不一致的结果,无论是否传递 sort() 函数:
function sortThese(strArr) {
var words = [];
for (var i = 0; i < strArr.length; i++) {
words.push(String(strArr[i].length + "," + strArr[i]));
}
words = words.sort();
console.log(words);
}
sortThese(["battt","catt","mat"]);
sortThese(["as","assssvvvvt","affggg"]);
在这种情况下,我的结果是:
["3,mat", "4,catt", "5,battt"]
["10,assssvvvvt", "2,as", "6,affggg"]
所以看起来该方法将我的“10”视为“1”。
我如何让它看到值为 10?
此外,如果我通过 sort 这个函数:
words = words.sort(function(a,b){
return a - b;
});
结果未排序:
["4,catt", "5,battt", "3,mat"]
["2,as", "10,assssvvvvt", "6,affggg"]
我希望澄清一下我应该如何期望 sort 方法的行为,以及如何使它对这些字符串进行排序!谢谢