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 と表示されるようにするにはどうすればよいですか?
さらに、この関数をソートすると、次のようになります。
words = words.sort(function(a,b){
return a - b;
});
結果はソートされません:
["4,catt", "5,battt", "3,mat"]
["2,as", "10,assssvvvvt", "6,affggg"]
sort メソッドがどのように動作することを期待すべきか、およびこれらの文字列をソートする方法について明確にしたいと思います! ありがとうございました