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

161
Visualizações
Reducir el mapa interior dentro del mapa no es eficiente

Estoy tratando de ejecutar una serie de palabras clave en una serie de categorías y luego dentro de esas categorías hay algunas opciones. Así que terminé haciendo un mapa sobre un mapa sobre una reducción y cuando se trata de muchas entradas, el nodo consume demasiada memoria.

Entendí esto, lo que hace no es realmente el problema, pero ¿cómo hacer que no anhele tales cantidades de memoria?

 const keywords = [ { Keyword: 'foo', URL: 'https://www.facebook.co.uk' }, { Keyword: 'foo', URL: 'https://www.twitter.co.uk/blue' }, { Keyword: 'faa', URL: 'https://www.facebook.co.uk/twitter' }, { Keyword: 'faa', URL: 'https://www.apple.co.uk/green' } ] const categories = [ { name: 'Tech', options: [ { method: 'include', regex: 'facebook' }, { method: 'exclude', regex: 'twitter' } ] }, { name: 'Green', options: [ { method: 'include', regex: 'green' } ] } ] const result = keywords.map((obj) => { categories.map(({ name, options }) => { const option = options.reduce((acc, { method, regex }) => { acc.push(method === 'include' ? obj.URL.includes(regex) : !obj.URL.includes(regex)) return acc }, []) obj[name] = !option.includes(false) }) return obj }) console.log(result)
 .as-console-wrapper { max-height: 100% !important; top: 0; }

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

0

Estás creando muchas matrices que no son necesarias.

Si solo le importa si la option incluye false() , puede reemplazar la llamada reduce() con every() .

categories.map() debería ser categories.forEach() , ya que no usa la matriz resultante.

Dado que está modificando obj en su lugar y devolviendo esto, los objetos en la matriz de result serán los mismos que en la matriz de keywords , por lo que tampoco es necesario crear una nueva matriz allí. Entonces podrías usar forEach() también.

 const keywords = [{ Keyword: 'foo', URL: 'https://www.facebook.co.uk' }, { Keyword: 'foo', URL: 'https://www.twitter.co.uk/blue' }, { Keyword: 'faa', URL: 'https://www.facebook.co.uk/twitter' }, { Keyword: 'faa', URL: 'https://www.apple.co.uk/green' } ] const categories = [{ name: 'Tech', options: [{ method: 'include', regex: 'facebook' }, { method: 'exclude', regex: 'twitter' } ] }, { name: 'Green', options: [{ method: 'include', regex: 'green' }] } ] keywords.forEach((obj) => categories.forEach(({name, options}) => obj[name] = options.every(({method, regex}) => method === 'include' ? obj.URL.includes(regex) : !obj.URL.includes(regex)))) console.log(keywords)
 .as-console-wrapper { max-height: 100% !important; top: 0; }

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