Javascript 输入的单词是否按字母顺序排列?

Javascript 输入的单词是否按字母顺序排列?,javascript,alphabetic,Javascript,Alphabetic,我正在编写一个函数,它将返回true或false,以确定输入字符串是否按字母顺序排列。我得到了未定义的,不确定我缺少了什么 函数为字母(str){ 让结果=真; 对于(让count=1,other_count=2;count>=str.length-1,other_count>=str.length;count++, 其他(计数++){ 如果(str.at[count]>str.at[other_count]){ 让结果=假 } 返回结果 } } console.log(是字母('abc'))

我正在编写一个函数,它将返回
true
false
,以确定输入字符串是否按字母顺序排列。我得到了
未定义的
,不确定我缺少了什么

函数为字母(str){
让结果=真;
对于(让count=1,other_count=2;count>=str.length-1,other_count>=str.length;count++,
其他(计数++){
如果(str.at[count]>str.at[other_count]){
让结果=假
}
返回结果
}
}

console.log(是字母('abc'))这应该可以。我使用了
.localeCompare()
,因为这将忽略小的/大写的差异,并且还将合理地处理特定于语言的字符,例如德语Umlauts

函数为字母(str){

return!str.split(“”).some((v,i,a)=>i&&v.localeCompare(a[i-1])console.log(s,是字母顺序);
我认为使用此函数比较字符串更容易:

var sortAlphabets = function(text) {
    return text.split('').sort().join('');
};
function isSorted(myString) {
    return sortAlphabets(myString) == myString
}
这会产生如下结果:

sortAlphabets("abghi")
output: "abghi"
或:

如果您想知道字符串是否按字母顺序排序,可以使用:

var myString = "abcezxy"
sortAlphabets(myString) == myString
output: false
或者,如果您想创建一个特定的函数:

var sortAlphabets = function(text) {
    return text.split('').sort().join('');
};
function isSorted(myString) {
    return sortAlphabets(myString) == myString
}
在这种情况下,您可以使用:

isSorted("abc")
var sortAlphabets=函数(文本){
返回text.split(“”).sort().join(“”);
};
函数isSorted(myString){
return sortAlphabets(myString)=myString
}
警报(“abc分类:+ISORTED(“abc”));

警报(“is axb sorted:”+isSorted(“axb”);
您已将
return
语句放在for循环内部,它应该在循环体外部

您的代码也不正确。
计数
应从0开始,
其他计数
应从1开始

count>=str.length-1
应该是
count
(此条件在您的代码中完全不必要,因为
other\u count
应该是循环中的终止条件)

other\u count>=str.length
应为
other\u count

这是您更正的代码

函数为字母(str){
让结果=真;
对于(让计数=0,其他计数=1;其他计数str[other_count]){
结果=错误
}
}
返回结果;
}

console.log(按字母顺序('abc');
代码中有两个问题:

  • 您的返回语句在for循环中。为了避免此类错误,您可以使用类似prettier的代码格式化程序
  • 您的for循环条件无效。请记住,for循环语句的第二部分应该是
    true
    以执行迭代,而
    false
    以停止执行迭代。在这种情况下,您的条件
    count>=str.length-1,other\u count>=str.length
    将首先计算
    count>=str.length-1
    ,放弃结果,因为,evaluate
    other_count>=str.length
    立即解析为
    false
  • 这两件事结合在一起,使函数永远不会返回,javascript运行时将其解释为
    未定义


    希望这能帮助您理解出了什么问题。但正如许多其他人指出的那样,有更好的方法来解决您试图解决的问题。

    您只需将字符串与其对应的“排序”字符串进行比较即可

    let string='abc'.split('').join('');
    让sortedString='abc'.split('').sort().join('');
    console.log(sortedString==sortedString)
    让string2='dbc'.split('').join('');
    让sortedString2='dbc'.split('').sort().join('');
    
    log(string2==sortedString2)
    如果在循环内部返回,则返回语句应该在循环体外部