Javascript 确定字符串中的所有字母是否按字母顺序排列

Javascript 确定字符串中的所有字母是否按字母顺序排列,javascript,arrays,string,oop,sorting,Javascript,Arrays,String,Oop,Sorting,我试图编写一个JavaScript函数来确定字符串中的所有字母是否按字母顺序排列。以下内容将继续返回“SyntaxError:意外令牌默认值” 函数有序字(str){ var s=str.toLowerCase().split(“”); 对于(变量i=0;i=default) 默认值=s[i+1]; 否则返回false; } 返回true; } orderedWords(“aaabcdeffz”);//真的 订购的文字(“abcdefzjjab”);//假的 非常感谢您的帮助。default是

我试图编写一个JavaScript函数来确定字符串中的所有字母是否按字母顺序排列。以下内容将继续返回“SyntaxError:意外令牌默认值”

函数有序字(str){
var s=str.toLowerCase().split(“”);
对于(变量i=0;i=default)
默认值=s[i+1];
否则返回false;
}
返回true;
}
orderedWords(“aaabcdeffz”);//真的
订购的文字(“abcdefzjjab”);//假的

非常感谢您的帮助。

default
是JavaScript中的关键字,不能是变量名

编辑:此外,您还有一个逻辑问题:如果您迭代到
长度
,则在上次迭代中,您将根据
未定义的
检查最后一个字符;测试将失败,您将
返回false
。改写为:

for(var i=0; i<s.length - 1; i++) {
编辑3:更简单,更短:

function orderedWords(str) {
    return str == str.split('').sort().join('');
}

看起来你要找的不仅仅是一种?使用此函数,您可以使用map中定义的任何字母顺序,并且该函数还可以删除标点符号,以防您需要检查凌乱的字符串

var map = "abcdefghijklmnopqrstuvwxyz";

function orderedWords(str,map){
    str = str.replace(/(.)(?=.*\1)/g, "");
    str = str.replace(/\W/g, '');
    var test = ""
    for(var i in map){
        if(str.indexOf(map[i])>-1){
            test += map[i];
        }
    }
    if(test.toLowerCase() == str.toLowerCase()){
        return true;
    }
    return false;
}

console.log(orderedWords("aaabcdefffz", map));
console.log(orderedWords("abcdefzjjab", map));

@马克:是的。前两次编辑我最关心的是重写OP的代码,我错过了拆分代码的事情。非常感谢你的详尽回答。在比较(var i=0;iI)时,其中一个迭代每次减去
1
,而另一个迭代每次减去
1。此外,其中一个的字符数更少。
function orderedWords(str) {
    return str == str.split('').sort().join('');
}
var map = "abcdefghijklmnopqrstuvwxyz";

function orderedWords(str,map){
    str = str.replace(/(.)(?=.*\1)/g, "");
    str = str.replace(/\W/g, '');
    var test = ""
    for(var i in map){
        if(str.indexOf(map[i])>-1){
            test += map[i];
        }
    }
    if(test.toLowerCase() == str.toLowerCase()){
        return true;
    }
    return false;
}

console.log(orderedWords("aaabcdefffz", map));
console.log(orderedWords("abcdefzjjab", map));