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

120
Visualizações
Objeto de matriz 2D a función de filtro de matriz 1D

Caso de uso 1
Suponiendo que tengo 2dArray Object de

 let arr = [{'getName':'Report1'},{'getName':'User'},{'getName':'report 2'},{'getName':'User'},{'getName':'User'}] let _NotRequiredSheet = ['User','Report 254',...]

Estoy tratando de optimizar mi script con programación funcional que me devolverá una serie de

 ['report1','report2']

El método actual que estoy usando y que no tiene ningún error es:

 for(let i =0;i < arr.length;i++){ if(arr[i].getName != _NotRequiredSheet[0]){ console.log(arr[i].getName) } }

Pero esto tendrá un impacto si _notrequiredSheet tiene una gran lista de lo que no se requiere

Intenté usar este enfoque que usa filtro, pero dado que es 2dObject Array, no estoy seguro de cómo debería implementarse. Lo que hice en mi poc es

 //Approach 1 : Not Working let result = arr.filter(function (arr) { return arr.getName != _NotRequiredSheet.values(); }) //Output should be as 1dArray['report1','report2'] , not (5) [{…}, {…}, {…}, {…}, {…}] console.log(result) //Approach 2 : Will output as 2D array with filtered value // Will require to hardcord the index which is not advisable let result = arr.filter(function (arr) { return arr.getName != _NotRequiredSheet[0]; }) console.log(result)

Quería verificar si hay alguna forma en que pueda pasar el uso de for loop con la función de filtro. El resultado debería devolverse como una matriz 1D que es

['Informe1','Informe2']

El caso de uso 1 está resuelto

Caso de uso 2: matriz de objetos 2D Suponiendo que los datos se declaran como

 let arr2 = [ {$0:{'Name':'Report1'}}, {$0:{'Name':'Report2'}}, {$0:{'Name':'User'}} ]

El resultado debería mostrar esto en console.log (2) [{…}, {…}] , la función de filtro eliminará 'Usuario' como se refleja en _NotRequiredSheet.

Usando la sintaxis que escribí

 let result = arr2.map(item => item.$0.Name).filter(Name => !_NotRequiredSheet.includes(Name))

Esto devolverá como una sola matriz

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

0

Puede filtrar sus datos buscando valores no deseados y mapear solo la propiedad deseada.

 const data = [{ getName: 'Report1' }, { getName: 'User' }, { getName: 'report 2' }, { getName: 'User' }, { getName: 'User' }], _NotRequiredSheet = ['User', 'Report 254'], result = data .filter(({ getName }) => !_NotRequiredSheet.includes(getName)) .map(({ getName }) => getName); console.log(result);

con un conjunto

 const data = [{ getName: 'Report1' }, { getName: 'User' }, { getName: 'report 2' }, { getName: 'User' }, { getName: 'User' }], _NotRequiredSheet = ['User', 'Report 254'], take = k => o => o[k], hasNot = s => v => !s.has(v), comp = f => g => o => f(g(o)), result = data .filter( comp(hasNot(new Set(_NotRequiredSheet)))(take('getName')) ) .map(({ getName }) => getName); console.log(result);

about 4 years ago · Juan Pablo Isaza Relatório

0

Recomiendo usar reduce() para que pueda devolver algo basado en _NotRequiredSheet.includes(cur.getName)

 let arr = [{'getName':'Report1'},{'getName':'User'},{'getName':'report 2'},{'getName':'User'},{'getName':'User'}] let _NotRequiredSheet = ['User','Report 254' ]; let res = arr.reduce((prev, cur) => { if (_NotRequiredSheet.includes(cur.getName)) { return prev; } else { return [ ...prev, cur.getName ]; } }, []); console.log(res);

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