estoy aprendiendo Javascript y no entiendo por qué el indexOf continuación devuelve -1:¿Por qué IndexOf devuelve -1?
var string = "The quick brown fox jumps over the lazy dog";
console.log (string.indexOf("good"));
estoy aprendiendo Javascript y no entiendo por qué el indexOf continuación devuelve -1:¿Por qué IndexOf devuelve -1?
var string = "The quick brown fox jumps over the lazy dog";
console.log (string.indexOf("good"));
-1 significa "no se encontró coincidencia".
La razón por la que devuelve -1 en lugar de "falso" es que una aguja al comienzo de la cadena estaría en la posición 0, que es equivalente a falso en Javascript. Así que devolver -1 asegura que sabes que no hay realmente una coincidencia.
-1 significa que se encuentra ninguna coincidencia. "bueno" no está en esa oración. Esto es documentedbehaviour.
El método
indexOf()
devuelve el primer índice en el cual un elemento dado se puede encontrar en la matriz, o-1
si no está presente.
La búsqueda nunca encuentra lo que está buscando ("bueno" no está en la oración), y -1 es el valor de retorno predeterminado.
Dado que las matrices están basadas en 0, devolver 0 significaría que comenzar desde el primer carácter coincidió; 1, el segundo personaje, y así sucesivamente. Esto significa que cualquier cosa de 0 en adelante sería una respuesta verdadera o "encontrada". Para mantener todo en la categoría entera, -1 significa que no se encontró coincidencia.
Hay otro motivo para que indexOf devuelva -1 cuando no se encuentra ninguna coincidencia. Consideremos a continuación el código:
if (~str.indexOf(pattern)){
console.log('found')
}else{
console.log('not found')
}
Debido a ~ (-1) = 0 por lo que el hecho de que indexOf devolviendo -1 hace que sea más fácil de escribir if ... else usando ~.
Eso es lo que estaba buscando. Gracias. –