如果值存在,为什么索引(char)为0



为什么firstHalf.indexOf(secondHalfArr[i]) 0

"use strict";
let word = "9999999999",
  len = word.length,
  oddSecondHalfStarter = (len % 2 == 0) ? len / 2 : 1 + len / 2,
  firstHalf = word.substr(0, len / 2),
  secondHalf = word.substr(oddSecondHalfStarter, len),
  firstHalfArr = word.substr(0, len / 2).split(''),
  secondHalfArr = word.substr(oddSecondHalfStarter, len).split(''),
  firstHalfLength = firstHalf.length,
  secondHalfLength = secondHalf.length,
  charsToReplace = 0;
for (let i = 0; i < firstHalfLength; i++) {
  if (firstHalf.indexOf(secondHalfArr[i]) < 1) {
    charsToReplace++;
  }
}
for (let i = 0; i < secondHalfLength; i++) {
  if (secondHalf.indexOf(firstHalfArr[i]) < 1) {
    charsToReplace++;
  }
}
alert(charsToReplace);

indexOf()方法返回字符串中第一次出现指定值的位置。

此方法返回 -1 如果要搜索的值永远不会发生。 indexOf()方法是敏感的。


确保在语句中使用!== -1作为有效结果。

示例:

for (let i = 0; i < secondHalfLength; i++) {
  if (secondHalf.indexOf(firstHalfArr[i]) !== -1) {
    charsToReplace++;
  }
}

最新更新