Saltar al contenido

¿La forma óptima de comparar cadenas en JavaScript?

Solución:

Puedes usar el localeCompare() método.

string_a.localeCompare(string_b);

/* Expected Returns:

 0:  exact match

-1:  string_a < string_b

 1:  string_a > string_b

 */

Otras lecturas:

  • MDN: String.prototype.localeCompare
  • Desbordamiento de pila: ¿hay un strcmp () de JavaScript?
  • Punto de los tutoriales: Cadena JavaScript – Método localeCompare ()

Bueno, en JavaScript, puede verificar dos cadenas en busca de valores iguales a los números enteros, por lo que puede hacer esto:

  • "A" < "B"
  • "A" == "B"
  • "A" > "B"

Y por lo tanto, puede crear su propia función que verifique cadenas de la misma manera que la strcmp().

Entonces esta sería la función que hace lo mismo:

function strcmp(a, b)
{   
    return (a<b?-1:(a>b?1:0));  
}

Puede utilizar los operadores de comparación para comparar cadenas. A strcmp La función podría definirse así:

function strcmp(a, b) {
    if (a.toString() < b.toString()) return -1;
    if (a.toString() > b.toString()) return 1;
    return 0;
}

Editar Aquí hay una función de comparación de cadenas que toma como máximo min {length (a), largo(B)} comparaciones para saber cómo se relacionan dos cadenas entre sí:

function strcmp(a, b) {
    a = a.toString(), b = b.toString();
    for (var i=0,n=Math.max(a.length, b.length); i<n && a.charAt(i) === b.charAt(i); ++i);
    if (i === n) return 0;
    return a.charAt(i) > b.charAt(i) ? -1 : 1;
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *