Javascript 按字母表排序数组将无法正常工作
我所说的代码: 我想用两个按钮按名称对数组排序:第一个按钮按长度排序,第二个按钮按字母表排序 当我按字母表排序时,它不想运行。它随机将数据放在不同的位置。我尝试过多种排序方法,但它们都表现得很古怪,而且不完全按字母顺序排序。我该怎么做才能让它真正按照字母表对数组中的名称进行排序Javascript 按字母表排序数组将无法正常工作,javascript,arrays,sorting,alphabetical,Javascript,Arrays,Sorting,Alphabetical,我所说的代码: 我想用两个按钮按名称对数组排序:第一个按钮按长度排序,第二个按钮按字母表排序 当我按字母表排序时,它不想运行。它随机将数据放在不同的位置。我尝试过多种排序方法,但它们都表现得很古怪,而且不完全按字母顺序排序。我该怎么做才能让它真正按照字母表对数组中的名称进行排序 function sortNameAlphabetically(a, b) { return a.name > b.name; } “按长度排序”按预期工作,除非它在“长度”之后按
function sortNameAlphabetically(a, b) {
return a.name > b.name;
}
“按长度排序”按预期工作,除非它在“长度”之后按字母顺序进行排序。我如何确保它的排序正确
function sortNameByLength(a, b) {
return b.name.length - a.name.length;
a.localeCompare(b);
按字母顺序将
sortname
方法更改为
function sortNameAlphabetically(a, b) {
return a.name.localeCompare( b.name );
}
更新
另外,sortNameByLength
方法中return语句之后的语句是不可访问的,并且无论如何都不是必需的
function sortNameByLength(a, b) {
return b.name.length - a.name.length;
}
问题的第二部分,要在长度排序之后保持字母排序,可以使用逻辑OR和localeCompare方法
function sortNameByLength(a, b) {
return b.name.length - a.name.length || a.name.localeCompare(b.name);
}
令人惊叹的。你知道我如何解决第二个问题吗?@Thomasdc干脆
返回a.name.length-b.name.length代码>但是在按长度排序之后,我如何让它按字母顺序排序呢?所以如果我有ABA,BBBB,AAAA,AAA。它应该是AAAA,BBBB,AAA,ABA。我已经试过了,它不起作用。什么也没发生。请尝试编辑。你需要地址的名称属性。非常好。非常感谢!:)