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

226
Visualizações
Cambiar dinámicamente la clave en una consulta de filtro

Creé un código de filtrado simple que filtra 0 y nulos. Quizás no sea el más elegante, pero funciona:

 var data = [{"location": 30, "year": 2019}, {"location": 60, "year" : 1928}, {"location": 0, "year": 2019}, {"location": 50, "year": 0}]; var filteredData = []; for (var i = 0; i < data.length; ++i) { if (data[i].location !== null && data[i].location != 0) { filteredData.push({ location: data[i].location, year: data[i].year }) } }; console.log(filteredData);

Ahora me gustaría filtrar 0 y nulos para otras claves (por ejemplo, año), ¿cómo puedo cambiar dinámicamente la clave?

Mi pensamiento (quizás ingenuo) fue crear una variable que indicara la clave que quiero filtrar

Desafortunadamente eso no funcionó. ¿Alguien tiene una sugerencia o me ayuda en la dirección correcta?

 var var1 = 'year'; var data = [{"location": 30, "year": 2019}, {"location": 60, "year" : 1928}, {"location": 0, "year": 2019}, {"location": 50, "year": 0}]; var filteredData = []; for (var i = 0; i < data.length; ++i) { if (data[i].var1 !== null && data[i].var1 != 0) { filteredData.push({ location: data[i].location, year: data[i].year }) } }; console.log(filteredData)

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Su problema es que necesita usar la notación de corchetes en lugar de la notación de puntos para las claves variables.

Dicho esto, JavaScript tiene un método de filtro de matriz

Luego puede usar cada para tener claves dinámicas en una matriz:

 const data = [{"location": 30, "year": 2019}, {"location": 60, "year" : 1928}, {"location": 0, "year": 2019}, {"location": 50, "year": 0}]; const notZero = ["location","year"] const filteredData = data.filter(item => notZero.every(key => item[key] !== 0)) console.log(filteredData)

about 4 years ago · Juan Pablo Isaza Relatório

0

en lugar de data[i].var1 intente data[i][var1] . los corchetes le permiten tener una clave dinámica.

about 4 years ago · Juan Pablo Isaza Relatório

0

Si puede tener 0 o nulo en sus datos, debe hacer esto:

 const data = [{"location": 30, "year": 2019}, {"location": 60, "year" : 1928}, {"location": 0, "year": 2019}, {"location": 50, "year": 0}]; const filteredData = data.filter(item => !Object.values(item).filter(value => !value).length)

Esto le permite verificar dinámicamente todos los valores dentro de un objeto y verificar si todos ellos son valores verdaderos, capturando así todos los valores falsos.

about 4 years ago · Juan Pablo Isaza Relatório
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