Javascript string.prototype.localeCompare(),脚本修改

Javascript string.prototype.localeCompare(),脚本修改,javascript,jquery,function,sorting,Javascript,Jquery,Function,Sorting,我有以下代码: <!DOCTYPE HTML> <html> <head> <title> Sort a list alphabetically </title> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"&g

我有以下代码:

<!DOCTYPE HTML>  
<html>  
    <head>  
        <title>  
            Sort a list alphabetically 
        </title> 

        <script src =  
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"> 
        </script> 
    </head>  

    <body>  
        <button> 
                click here 
            </button> 

        <ul> 
            <li>Geeks</li> 
            <li>Sosna</li> 
            <li>Zebra</li> 
            <li>GeeksForGeeks</li>
          <li><h1>G</h1></li> 
            <li><h1>F</h1></li> 
            <li>Arbuz</li> 
            <li><h1>A</h1></li>
          <li>Łódź</li> 
            <li><h1>Ł</h1></li>
          <li>ósmy</li> 
            <li><h1>Ó</h1></li> 
          <li>święty</li> 
            <li><h1>Ś</h1></li> 
          <li>ärgern</li> 
            <li><h1>Ä</h1></li> 
          <li>Österreich</li> 
            <li><h1>Ö</h1></li> 
          <li>Überraschung</li> 
            <li><h1>Ü</h1></li> 
        </ul> 

        <script> 
            function Ascending_sort(a, b) { 
                return ($(b).text().toUpperCase()) <  
                    ($(a).text().toUpperCase()) ? 1 : -1;  
            } 
            $('button').on('click', function() { 
                $("ul li").sort(Ascending_sort).appendTo('ul'); 
            });                  
        </script>  
    </body>  
</html>  
代码笔:

我刚开始学习JavaScript。我一个人处理不了。我想使用函数对列表进行排序。有人能帮我把它写进剧本吗

已返回.sort所期望的正确数值,因此您无需担心自己会这样做

从文档中,.localeCompare的返回值:

如果引用字符串出现在比较字符串之前,则为负数;如果引用字符串出现在比较字符串之后,则为正值;如果它们相等,则为0

您的.localeCompare代码如下所示:

函数升序排序,b{ b=$b.text.trim.toUpperCase; a=$a.text.trim.toUpperCase; 返回b.localeComparea; } $'按钮'。单击'按钮',函数{ $ul li.排序。附加到'ul'; }; 在聊天中的讨论之后,使用排序并使用字符串更有意义,并且已添加到代码段中

常量字母=abcdefghijklmnopqrstuvwxyzäöüß; 功能字母Sorta,b{ b=$b.text.trim.toLowerCase; a=$a.text.trim.toLowerCase; //查找字符串不匹配的第一个位置 设位置=0; whilea[position]==b[position]{ //如果两者相同,则不要交换 如果!a[position]&&!b[position]返回0; //否则,较短的优先 如果!a[位置]返回1; 如果!b[位置]返回-1; 位置++; } //然后按字符位置排序 返回alphabet.indexOfa[position]-alphabet.indexOfb[position]; } $'按钮'。单击'按钮',函数{ $ul li.sortletterSort.appendTo'ul'; }; 点击这里 极客 索斯纳 斑马 极客 G F 阿尔布兹 A. Łódź Ł 奥斯米 Ó święty Ś 奥尔根 Ä Österreich Ö Überraschung Ü 已返回.sort所期望的正确数值,因此您无需担心自己会这样做

从文档中,.localeCompare的返回值:

如果引用字符串出现在比较字符串之前,则为负数;如果引用字符串出现在比较字符串之后,则为正值;如果它们相等,则为0

您的.localeCompare代码如下所示:

函数升序排序,b{ b=$b.text.trim.toUpperCase; a=$a.text.trim.toUpperCase; 返回b.localeComparea; } $'按钮'。单击'按钮',函数{ $ul li.排序。附加到'ul'; }; 在聊天中的讨论之后,使用排序并使用字符串更有意义,并且已添加到代码段中

常量字母=abcdefghijklmnopqrstuvwxyzäöüß; 功能字母Sorta,b{ b=$b.text.trim.toLowerCase; a=$a.text.trim.toLowerCase; //查找字符串不匹配的第一个位置 设位置=0; whilea[position]==b[position]{ //如果两者相同,则不要交换 如果!a[position]&&!b[position]返回0; //否则,较短的优先 如果!a[位置]返回1; 如果!b[位置]返回-1; 位置++; } //然后按字符位置排序 返回alphabet.indexOfa[position]-alphabet.indexOfb[position]; } $'按钮'。单击'按钮',函数{ $ul li.sortletterSort.appendTo'ul'; }; 点击这里 极客 索斯纳 斑马 极客 G F 阿尔布兹 A. Łódź Ł 奥斯米 Ó święty Ś 奥尔根 Ä Österreich Ö Überraschung Ü 试一试

试一试


如果要交换排序,请更改升序排序中的参数-而不是$a.text.toUpperCase.localeCompare$b.text.toUpperCase,使用$b.text.toUpperCase.localeCompare$a.text.toUpperCase不确定,但可能是一些选项中的东西,您可以更改以获得此结果-目前正在尝试一些事情,但没有运气,我知道此文档。这不是什么大问题。我只是出于好奇而问。也许将来会有用。再次感谢!:我已经稍微修改了代码,使其更易于编辑,但这是我能做的最好的了——我之前尝试过这个,但没有找到任何地方。您可能需要使用这些字符来自的区域设置而不是en,例如,fi给出了不同的排序顺序;但是我不知道你的案子应该用什么语言环境,不仅仅是用“de”作为语言环境吗?根据代码段中的第3条注释进行排序如果我在Editori上查看,如果要交换排序,请在升序中更改参数-而不是$a.text.toUpperCase.localeCompare$b.text.toUpperCase,使用$b.text.toUpperCase.localeCompare$a.text.toUpperCase不确定,但可能是在选项中,您可以更改以获得
这个结果-目前正在尝试一些事情,但没有一吨的运气,我知道这个文件。这不是什么大问题。我只是出于好奇而问。也许将来会有用。再次感谢!:我已经稍微修改了代码,使其更易于编辑,但这是我能做的最好的了——我之前尝试过这个,但没有找到任何地方。您可能需要使用这些字符来自的区域设置而不是en,例如,fi给出了不同的排序顺序;但是我不知道你的案子应该用什么语言环境,不仅仅是用“de”作为语言环境吗?如果我查看了editorIt,则根据您在代码段中的第3条注释进行排序,但从大到小。我在上面的评论中也提到了同样的问题:如何在A之后使用arbuz,在Ä之后使用ärgern,在Ó之后使用ósmy,在Ö之后使用Österreich,等等?在升序排序中交换参数,然后应该让它升序!对于一件事之后的arbuz,我不会将头也放入排序中,而是使用另一个函数来提取所有现有的开始字符并将它们放入dom!很好,但是下降了。我在上面的评论中也提到了同样的问题:如何在A之后使用arbuz,在Ä之后使用ärgern,在Ó之后使用ósmy,在Ö之后使用Österreich,等等?在升序排序中交换参数,然后应该让它升序!对于一件事之后的arbuz,我不会将头也放入排序中,而是使用另一个函数来提取所有现有的开始字符并将它们放入dom!
function Ascending_sort(a, b) { 
            return $(b).text().localeCompare($(a).text()) 
        } 
        $('button').on('click', function() { 
            $("ul li").sort(Ascending_sort).appendTo('ul'); 
        });