2017-04-22 2 views
0

Pourquoi firstHalf.indexOf(secondHalfArr[i])0?Pourquoi indexOf (char) est 0 si la valeur existe?

"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

Il est '-1' si la valeur n'existe pas,' 0' signifie qu'il a trouvé sur le premier caractère. –

+0

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

Répondre

1

Le procédé indexOf() renvoie la position de la première occurrence d'une valeur spécifiée dans une chaîne.

Cette méthode renvoie -1 si la valeur à rechercher ne se produit jamais. La méthode indexOf() est sensible à la casse.


Assurez-vous d'utiliser !== -1 dans vos instructions pour des résultats valides.

Exemple:

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