首页 > 解决方案 > 我需要找到字符串 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;
};

标签: javascriptstringfor-loopif-statement

解决方案


在第一次出现 len= -1 所以: (len ==-1) 变为 true;并且 len 更改为 i 所以 len=i; 在第二次出现 len 不是 -1 所以:

len = i - len -1;

本质上,在上面的表达式中, len 保持第一次出现的索引,而 i 有第二次出现的索引,所以区别将是,两次出现之间的差异,'qweraq':第一次出现:0,第二次:6 . 6-0-1= 5 是差值;


推荐阅读