javascript - 我需要找到字符串 js 中两个字符之间的距离。我有一个解决方案,但我无法理解与 if 语句相关的代码片段
问题描述
任务是编写一个函数 subLength(),它接受 2 个参数、一个字符串和一个字符。该函数应在字符串中搜索两次出现的字符并返回它们之间的长度,包括 2 个字符。如果字符出现少于 2 次或多于 2 次,则函数应返回 0。
const subLength = (str, char) => {
let charCount = 0;
let len = -1;
for (let i=0; i<str.length; i++) {
if (str[i] == char) {
charCount++;
if (charCount > 2) {
return 0;
}
// could somebody explain why -1 is equal to len and then len is reassigned to i???
if (len == -1) {
len = i;
} else {
len = i - len + 1
}
}
}
if (charCount < 2) {
return 0;
}
return len;
};
解决方案
在第一次出现 len= -1 所以: (len ==-1) 变为 true;并且 len 更改为 i 所以 len=i; 在第二次出现 len 不是 -1 所以:
len = i - len -1;
本质上,在上面的表达式中, len 保持第一次出现的索引,而 i 有第二次出现的索引,所以区别将是,两次出现之间的差异,'qweraq':第一次出现:0,第二次:6 . 6-0-1= 5 是差值;
推荐阅读
- css - 不要让 flex 包裹切换的标签文本
- c - 使用 termios - 无法将奇偶校验设置为偶数,出现 EINVAL 错误
- c# - c# .Net 框架;ContexMenuStrip:在每个项目/下拉项目集合的整个区域连续拉伸一个背景图像?
- javascript - 动态加载库的 Webpack 捆绑错误
- reactjs - 我如何实现一些道具以使我的代码在 react js 上更清晰?
- token - 这个合约中的蜜罐功能是什么?
- python - Python图像识别围绕对象创建四边形多边形
- c# - 实体框架将嵌套对象作为单独的文档插入 Cosmos Db
- python - 拆分字符串空格
- javascript - 使用JS根据输入时区更改时间