Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

Parámetros de búsqueda en JavaScript con URLSearchParams

¡Comparte nuestro contenido!

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)

Siendo JavaScript, un lenguaje que se presta para muchas cosas; en esta ocasión, trabajaremos un poco con los parámetros de búsqueda de una URL gracias a los métodos y propiedades de la interfaz URLSearchParams ¿Listo para escribir código? ¡Manos a la obra!

¿Qué son los parámetros de búsqueda?

En una URL, los parámetros de búsqueda son todos los pares identificador / variable que podemos enviar a dicha URL con el objetivo de almacenar o manipular datos. En otras palabras, son las variables que recibe una URL y que pueden ser usados por algún lenguaje de programación para realizar alguna operación. Por ejemplo:

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

En la imagen anterior, observamos dos parámetros. La variable q que claramente contiene el texto escrito en la caja de búsqueda, y otra llamada source con un valor diferente.

Creación del objeto URLSearchParams

Para manipular los parámetros de búsqueda, necesitamos tener acceso a la barra de búsqueda de nuestro navegador, esto lo hacemos a través de una llamada a window.location.search, mismo valor que le pasamos a nuestra variable que al ser un objeto, se debe declarar con new.

let parametros = new URLSearchParams(window.location.search);

Ahora que ya tenemos el objeto creado, lo mostraremos en nuestro documento, para ver que contiene.

document.write(parametros);

Y si abrimos el documento para probar…

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

¡No obtenemos nada! Esto se debe a que no le hemos enviado un par atributo / valor a nuestra URL, intentemos con un par de variables.

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

Ahora ya se puede ver.

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

Agregar nuevos parámetros de búsqueda

Para agregar nuevos parámetros a nuestra URL, utilizaremos el método append. Este método recibe como parámetros el nombre de la variable y su valor. Por ejemplo. Añadimos la variable nombre.

parametros.append("nombre", "Pepe");

Luego la variable edad.

parametros.append("edad", 22);

Agregamos otras dos variables.

parametros.append("correo", "pepe@gmail.com");
parametros.append("nuevo", true);

Siendo el resultado final, lo siguiente:

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

Consultar los parámetros de búsqueda

Ahora que ya tenemos varios parámetros en nuestra URL, es momento de consultarlos. La manera más simple de realizar esta tarea, es a través de un ciclo for. Por ejemplo:

for(let param of parametros){
   document.writeln("<br />Parámetro: " + param);
}

Dando como resultado lo siguiente:

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

Por supuesto, como podemos observar lo que obtenemos en cada iteración es el par atributo / valor. Así que, si estamos buscando tener acceso a cada parámetro por separado, usaremos tres métodos de la colección URLSearchParams.

  • Método has: Permite saber si un parámetro existe o no.
  • Método get: Obtiene el valor de un determinado parámetro.
  • Método getAll: Obtiene todos los valores asociados a un parámetro.

Cómo saber si un parámetro existe.

Como se menciono antes, el método has comprueba si un parámetro existe (true) o no (false) Su resultado se puede asignar a una variable o comprobar de manera directa. Por ejemplo, comprobemos si tiene el parámetro nombre:

let tieneNombre = parametros.has("nombre");
if(tieneNombre) document.write("<br />Si tiene nombre");
else document.write("<br />No tiene nombre");

Comprobemos otro parámetro, esta vez uno inexistente.

let estatura = parametros.has("estatura");
if(estatura) document.write("<br />Si tiene estatura");
else document.write("<br />No tiene estatura");

Observemos el resultado:

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

Obtener el valor de un parámetro específico

Para obtener el valor de un parámetro específico, utilizaremos el método get, el cual lleva como único elemento el nombre del parámetro que necesitamos. Por ejemplo:

let edad = parametros.get("edad");

Y si mostramos lo que obtuvimos…

document.write("<br />La edad es :" + edad);

Obtenemos como resultado.

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

Obtener los valores asociados a un parámetro

Una particularidad del método append, es que también sirve para añadir más de un valor a un parámetro. Cuando esto pasa, quizá necesitamos consultar todos los valores asociados a ese parámetro. Para eso, nos sirve el método getAll. Por ejemplo, si añadimos un parámetro sexo:

parametros.append("sexo", "F");

Y luego, con append le agregamos un valor extra.

parametros.append("sexo", "M");

Al usar el método get…

document.write("<br />Sexo :" + parametros.get("sexo"));

Solo obtendremos el valor inicial.

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

Pero, si usamos getAll

document.write("<br />Sexo :" + parametros.getAll("sexo"));

Obtendremos ambos valores.

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

Cómo acceder a todos los valores y atributos

Como vimos al inicio de este bloque, para acceder a todos los parámetros es con un ciclo for, pero al hacerlo obtenemos los pares atributo / valor. No obstante, si queremos acceder únicamente a los valores, necesitaremos el método values. Por ejemplo:

for(let valor of parametros.values()){
   document.write("<br />Valor " + valor);
}

De la misma manera, para tener acceso a los atributos (nombre de cada parámetro) usaremos el método keys. Por ejemplo:

for(let atributo of parametros.keys()){
   document.write("<br />Atributo " + atributo);
}

Lo que da como resultado:

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

Modificar los parámetros de búsqueda

Para modificar un parámetro de búsqueda, utilizaremos el método set. Este método tiene la particularidad de modificar el valor de un parámetro o crear uno nuevo si este no existía previamente. Por ejemplo, modifiquemos el nombre.

parametros.set("nombre", "Violeta");

Con el mismo método set, añadimos un id, mismo que al no existir antes, será creado.

parametros.set("id", 1);

Si mostramos la cadena completa.

document.write("<br />" + parametros);

Podemos observar las diferencias entre la cadena original de parámetros (la primera línea) y la última versión (la última línea)

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

Ordenar alfabéticamente los parámetros de búsqueda

En caso de ser necesario, podemos utilizar el método sort para hacer un ordenamiento alfabético de toda la cadena, tal como se muestra a continuación:

parametros.sort();

Entonces, mostremos nuevamente la cadena:

document.write("<br />" + parametros);

Y observemos el resultado.

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

Eliminar parámetros de búsqueda

Por último, pero no menos importante. Para eliminar parámetros de búsqueda, utilizamos el método delete mismo que recibe como argumento, el nombre del parámetro a eliminar. Por ejemplo, eliminemos el parámetro sexo:

parametros.delete("sexo");

Y luego el correo electrónico:

parametros.delete("correo");

Veamos como queda la cadena de parámetros.

document.write("<br />" + parametros);

Cuyo resultado es:

Parámetros de búsqueda en JavaScript con URLSearchParams - CableNaranja

Y con eso terminamos el repaso a la colección URLSearchParams. Si quieres probar

PRUEBA EL CÓDIGO FUENTE EN JSFIDDLE

¿Te ha resultado? Déjanos saber en los comentarios aquí abajo, en nuestra cuenta de twitter @cablenaranja7 o en nuestra página de facebook.

¡Comparte nuestro contenido!

Entradas relacionadas

Un comentario en "Parámetros de búsqueda en JavaScript con URLSearchParams"

Deja un comentario

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