Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

275
Vistas
Pasar objeto a parámetros de búsqueda de URL

Quiero pasar este objeto a los parámetros de búsqueda de URL:

 const obj = { mb_brand: car.base, mb_factor: car.factor, mb_type: car.type }

Tengo función para establecer parámetros:

 const setQuery = (key, value) => { let obj_url = new URL(window.location.href); let params = obj_url.searchParams; params.set(key, value); Router.push({ pathname: obj_url.pathname, search: obj_url.search }); }

Y lo que probé hasta ahora es:

 for(let i = 0 ; i < Object.keys(obj).length ; i++){ setQuery(Object.keys(obj)[i], Object.values(obj)[i]) }

Pero solo establece 1 parámetro, no 3.

 const obj = { mb_brand: 'blah', mb_factor: 'blah', mb_type: 'blah' } const setQuery = (key, value) => { let obj_url = new URL(window.location.href); let params = obj_url.searchParams; params.set(key, value); /*Router.push({ pathname: obj_url.pathname, search: obj_url.search });*/ console.log(obj_url.search) } for (let i = 0; i < Object.keys(obj).length; i++) { setQuery(Object.keys(obj)[i], Object.values(obj)[i]) }

Pero estableció solo el último parámetro.

Quiero ver este resultado en url:

localhost/index?mb_brand=blah&mb_factor=blah&?mb_type=blah

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Está definiendo su variable de params una y otra vez porque se está llamando a setQuery dentro de un bucle y sobrescribiendo el parámetro de consulta anterior. Por lo tanto, solo está disponible el último parámetro. Defina estas variables fuera de searchQuery , de modo que el ciclo for pueda agregar los parámetros a la misma variable.

 const obj = { mb_brand: 'blah', mb_factor: 'blah', mb_type: 'blah' } let obj_url = new URL(window.location.href); let params = obj_url.searchParams; const setQuery = (key, value) => { params.set(key, value); // console.log(obj_url.search) } for (let i = 0; i < Object.keys(obj).length; i++) { setQuery(Object.keys(obj)[i], Object.values(obj)[i]) } /*Router.push({ pathname: obj_url.pathname, search: obj_url.search });*/ console.log(params.toString());

Salida de la consola:

 mb_brand=blah&mb_factor=blah&mb_type=blah
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede crear directamente parámetros de búsqueda a partir de un objeto, consulte https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams :

 // Search parameters can also be an object const paramsObj = {foo: 'bar', baz: 'bar'}; const searchParams = new URLSearchParams(paramsObj); searchParams.toString(); // "foo=bar&baz=bar" searchParams.has('foo'); // true searchParams.get('foo');

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda