确定字符串中的所有字母是否按JavaScript字母顺序排列
Determine if all letters in a string are in alphabetical order JavaScript
我正试图编写一个JavaScript函数来确定字符串中的所有字母是否按字母顺序排列。以下将继续返回"SyntaxError:Unexpected token default"
function orderedWords(str) {
var s=str.toLowerCase().split("");
for(var i=0; i<s.length; i++) {
var default = s[i];
if (s[i+1] >= default)
default = s[i+1];
else return false;
}
return true;
}
orderedWords("aaabcdefffz"); // true
orderedWords("abcdefzjjab"); // false
非常感谢您的帮助。
default
是JavaScript中的关键字,不能是变量名。
编辑:此外,您还有一个逻辑问题:如果您迭代到length
,那么在上一次迭代中,您将对照undefined
检查最后一个字符;测试将失败,您将获得return false
。重写为:
for(var i=0; i<s.length - 1; i++) {
第2版:我甚至不确定为什么要使用这个变量,因为它与代码的其余部分无关。这也应该有效(此外,为了更容易计算,我将范围从[0..length-1)
移动到了[1..length)
):
function orderedWords(str) {
var s=str.toLowerCase().split("");
for(var i=1; i<s.length; i++) {
if (s[i - 1] > s[i]) {
return false;
}
}
return true;
}
第3版:更简单、更短:
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));
相关文章:
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 用于检查数组中是否存在元素的javascript自定义方法
- 是否可以在浏览器中使用纯JavaScript保存音频流
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- PhantomJS - 检查javascript函数是否正在运行的任何方法
- 是否有任何JavaScript UI组件可以显示字符串之间的差异
- javascript跨浏览器确定用户是否滚动到页面底部
- 是否可以用JavaScript显示等效的文件夹对话框
- 检查是否存在使用chrome扩展的javascript库
- 如何知道javascript for语句中的所有结果是否都是错误的
- 是否存在Javascript Liferay Service库的文档?如何处理错误情况
- 是否可以使用jquery或javascript将自动增量类添加到列表中
- javascript移动交叉浏览器确定用户是否滚动到页面底部
- 有没有一种方法可以从Javascript检测特定的应用程序是否安装在(AndroidiOS)设备上
- javascript数组元素是否知道其封闭数组
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- 是否有任何设置阻止JavaScript在系统上工作
- 是否可以在javascript中读取IE中的本地文件
- 是否有任何Javascript函数从指定的索引中进行正则表达式匹配