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

262
Visualizações
Intentando filtrar elementos de una submatriz de objetos profundamente anidada, siga obteniendo la propiedad no existe y vacíe la respuesta de la matriz

Tengo una matriz de objetos, cada uno con su propio subarreglo de objetos.

Estoy tratando de filtrar a través de cada uno de los subarreglos y eliminar cualquier elemento que no coincida con la condición expired === false pero sigo recibiendo un error que dice: Property 'expired' does not exist on type '{ name: string; expired: boolean; }[]'.ts(2339) matriz vacía y no estoy seguro de lo que estoy haciendo mal.

codigosandbox

Mi funcion es esta:

 result.filter(files => files.files.expired === false)

Así es como se ve la estructura del objeto padre:

 const result = [ { type: "Documents", files: [ { name: "file_1", expired: true }, { name: "file_2", expired: false }, { name: "file_3", expired: false }, { name: "file_4", expired: true }, { name: "file_5", expired: false } ] }, { type: "Images", files: [ { name: "file_1", expired: true }, { name: "file_2", expired: false } ] } ]
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Está filtrando la matriz de result , no las sub-matrices.

Esto filtrará las matrices de files en su lugar en la matriz de result

 const result = [{ type: "Documents", files: [{ name: "file_1", expired: true }, { name: "file_2", expired: false }, { name: "file_3", expired: false }, { name: "file_4", expired: true }, { name: "file_5", expired: false } ] }, { type: "Images", files: [{ name: "file_1", expired: true }, { name: "file_2", expired: false } ] } ]; result.forEach(el => el.files = el.files.filter(file => file.expired === false)); console.log(result)

Esto creará una nueva matriz de nuevos objetos:

 const result = [{ type: "Documents", files: [{ name: "file_1", expired: true }, { name: "file_2", expired: false }, { name: "file_3", expired: false }, { name: "file_4", expired: true }, { name: "file_5", expired: false } ] }, { type: "Images", files: [{ name: "file_1", expired: true }, { name: "file_2", expired: false } ] } ]; new_result = result.map(el => ({ ...el, files: el.files.filter(file => file.expired === false) })) console.log(new_result)

about 4 years ago · Juan Pablo Isaza Relatório

0

Tienes files.files como matriz, por lo que primero debes recorrerlo y luego filtrar, algo así como

 result.map((files) => files.files.filter(file=> file.expired === false));
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