2017-04-22 13 views
0

なぜfirstHalf.indexOf(secondHalfArr[i])0ですか?値が存在する場合、なぜindexOf(char)は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);

+9

それは 'だ-1'値が0 'は、それが最初の文字の上に見つかった意味'、存在しない場合。 –

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf – mplungjan

答えて

1

indexOf()方法は、文字列で指定された値の最初の出現位置を返します。

このメソッドは、検索する値が決して発生しない場合は、-1を返します。 indexOf()メソッドでは大文字と小文字が区別されます。


有効な結果を得るには、文中に!== -1を必ず使用してください。

例:

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