javascript - JavaScript:检查2个字母是否是字母表中的后续字母
问题描述
如何比较 JavaScript 中的 2 个字母以检查它们是否是字母表中的后续字母。基本上,这两个字母在字母表中必须彼此相邻。
例如,比较:
a
会b
是true
a
会c
是false
对于我的程序,我收到一个输入数组,例如["a","b","e"]
,我想遍历这个数组并将每个项目与它之前的项目进行比较,下面是我的代码:
function fearNotLetter(str) {
str = str.split("");
console.log(str);
for(let i=1; i<str.length; i++){
console.log(str[i]>str[i-1]);
if(str[i] > str[i-1]){
console.log("good order");
} else {
console.log("missing");
}
}
return str;
}
到目前为止,我不确定在内部做什么if statement
我只是尝试比较项目以检查 index 处的项目i
是否大于index 处的项目i-1
。
解决方案
提取两个字符charCode
,然后检查它们是否相差 1,并且在字母范围内:
const checkAlphaAdjacent = (c1, c2) => {
const [code1, code2] = [c1.charCodeAt(), c2.charCodeAt()];
return Math.abs(code1 - code2) === 1 && [c1, c2].every(char => /[a-z]/i.test(char));
};
console.log(checkAlphaAdjacent('a', 'b'));
console.log(checkAlphaAdjacent('a', 'c'));
console.log(checkAlphaAdjacent('A', 'C'));
console.log(checkAlphaAdjacent('B', 'C'));
推荐阅读
- scala - IDE 中本地模式下的 Spark 闭包行为
- javascript - 为什么状态变量不能被上下文变量更新?
- linux - 如何在 Linux Bash 中获取锁定文件
- javascript - 我怎样才能只显示整数标签?
- azure-devops - 根据先前任务日志中的字符串有条件地运行 Azure DevOps 任务
- python - 由于另一个进程正在使用文件,脚本无法移动文件的其余部分
- python - AttributeError:“numpy.float64”对象没有属性“掩码”
- javascript - 如何显示在 contentEdible div 中输入的字符数?
- css - svg圆中心对齐在IE11中不起作用
- javascript - 表单输出意外重复