Sto imparando Javascript e non capisco il motivo per cui l'indexOf seguito restituisce -1:Perché IndexOf restituisce -1?
var string = "The quick brown fox jumps over the lazy dog";
console.log (string.indexOf("good"));
Sto imparando Javascript e non capisco il motivo per cui l'indexOf seguito restituisce -1:Perché IndexOf restituisce -1?
var string = "The quick brown fox jumps over the lazy dog";
console.log (string.indexOf("good"));
-1 significa "nessuna corrispondenza trovata".
Il motivo per cui restituisce -1 anziché "falso" è che un ago all'inizio della stringa si trova nella posizione 0, che è equivalente a false in Javascript. Quindi restituire -1 assicura che tu sappia che non c'è in realtà una corrispondenza.
-1 significa nessuna corrispondenza viene trovato. "buono" non è in quella frase. Questo è documentedbehaviour.
Il metodo
indexOf()
restituisce il primo indice in cui un dato elemento può essere trovata nella matrice, o-1
se non è presente.
La ricerca non trova mai quello che sta cercando ("buono" non è nella frase) e -1 è il valore di ritorno predefinito.
Poiché gli array sono basati su 0, restituendo 0 significherebbe iniziare a partire dal primo carattere; 1, il secondo carattere e così via. Ciò significa che qualsiasi valore da 0 a superiore sarebbe una risposta vera o "trovata". Per mantenere tutto nella categoria intera, -1 indica che non è stata trovata alcuna corrispondenza.
C'è un altro motivo per indexOf per restituire -1 quando non viene trovata alcuna corrispondenza. Si consideri il seguente codice:
if (~str.indexOf(pattern)){
console.log('found')
}else{
console.log('not found')
}
Perché ~ (-1) = 0 quindi il fatto che il ritorno indexOf -1 rende più facile scrivere if ... else utilizzando ~.
Questo è quello che stavo cercando. Grazie. –