Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

138
Visualizações
cómo filtrar en un objeto y persistir sus valores anteriores que fueron filtrados antes

Obtengo las selecciones de id con una función getSelectedId , luego creo un objeto con sus valores selectElementFromSelect cuando escucha un clic y devuelve las coincidencias entre este objeto y un dato simulado con filtrarAutos .

Está funcionando, pero luego tengo que hacer otro filtro agregando en el objeto los otros valores de la selección.

Estaba intentando con una función recursiva pero sigue fallando y haciendo el filtro desde cero

Gracias por tu ayuda

 const resultado = document.querySelector('#resultado') const select = document.querySelectorAll('select') const maxYear = new Date().getFullYear() const minYear = maxYear - 10 const datos = ['marca', 'year', 'minimo', 'maximo', 'puertas', 'transmision', 'color'] let datosBusqueda = {} document.addEventListener('click', (e) => { getSelectedId(e) }) document.addEventListener('DOMContentLoaded', () => { mostrarAutos() llenarSelect() }) const getSelectedId = (e) => { const getId = datos.find(elem => elem === e.target.id) const selectTarget = { id: getId, element: document.querySelector(`#${getId}`) } const propiedadesSeleccionadas = selectElementFromSelect(selectTarget) filtrarAutos(selectTarget, propiedadesSeleccionadas) } const selectElementFromSelect = (selectTarget) => { const {id, element} = selectTarget element.addEventListener('change', (e) => { datosBusqueda[id] = e.target.value }) return datosBusqueda } const mostrarAutos = () => { autos.forEach(auto => { const {marca, modelo, year, puertas, transmision, precio, color} = auto const autoHtml = document.createElement('p') autoHtml.textContent = ` ${marca} ${modelo} - ${year} - ${puertas} Puertas - Transimision: ${transmision} - Precio: ${precio} - color: ${color} ` resultado.appendChild(autoHtml) }) } const llenarSelect = () => { for (let i = maxYear; i >= minYear; i--) { const option = document.createElement('option') option.value = i option.textContent = i year.appendChild(option) } } const filtrarAutos = (selectTarget, propiedadesSeleccionadas) => { const { id } = selectTarget const autosFiltrados = autos.filter(auto => { if (propiedadesSeleccionadas[id]) { return auto[id] === propiedadesSeleccionadas[id] } return auto }) if (autosFiltrados[id]) { filtrarAutos(selectTarget, autosFiltrados) } console.log(autosFiltrados) }
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda