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