Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中按最后一个字母(字母顺序)对字符串排序_Javascript_Sorting - Fatal编程技术网

在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));
}