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