在JavaScript中按最后一个字母(字母顺序)对字符串排序
给定一个字符串数组在JavaScript中按最后一个字母(字母顺序)对字符串排序,javascript,sorting,Javascript,Sorting,给定一个字符串数组 var lastLetterSort = [ 'blue', 'red', 'green' ]; 您将如何使用字符串的最后一个字母按字母顺序对字符串进行排序,最好使用排序函数/比较函数?尝试这样做 var lastLetterSort=['blue'、'red'、'green'、'aa']; var sorted=lastLetterSort.sort(函数(a,b){ 如果(a[a.length-1]>b[b.length-1]) 返回1; 如果(a[a.length-
var lastLetterSort = [ 'blue', 'red', 'green' ];
您将如何使用字符串的最后一个字母按字母顺序对字符串进行排序,最好使用排序函数/比较函数?尝试这样做
var lastLetterSort=['blue'、'red'、'green'、'aa'];
var sorted=lastLetterSort.sort(函数(a,b){
如果(a[a.length-1]>b[b.length-1])
返回1;
如果(a[a.length-1]
lastLetterSort.sort(函数(a,b){
var lastA=a.charAt(a.length-1);
var lastB=b.charAt(b.length-1);
如果(lastA>lastB){
返回1;
}else if(lastA
由于“a”<“b”,您可以创建一个比较函数并将其传递给
只使用
charCodeAt
属性更容易,该属性返回与字符关联的数字。字母表中出现较晚的字母往往具有较高的值
function last(x){
return x.sort((a, b) => a.charCodeAt(a.length - 1) - b.charCodeAt(b.length - 1));
}
回调必须返回一个数字,而不是布尔值。对于给定的数据,它运行良好只是一个意外。现在变量的
var
s丢失了
var colors = ["blue", "red", "green"];
function endComparator(a,b) {
if (a.slice(-1) < b.slice(-1)) return -1;
if (a.slice(-1) > b.slice(-1)) return 1;
return 0;
}
colors.sort(endComparator); // ["red", "blue", "green"]
var nums = [[0,1,2], [0,1,1]];
nums.sort(endComparator); // [[0,1,1], [0,1,2]]
function last(x){
return x.sort((a, b) => a.charCodeAt(a.length - 1) - b.charCodeAt(b.length - 1));
}