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

167
Visualizações
searching multiple values in string array in javascript/react

I have many values in string array. ['A','B','C','D','E'].

I have to search like this. if Array contains A ,B then it is admin. if it contains C,E then it is resercher. if it is containing B,C,D then it is manager.

I am writing below code for it. its not working. can you please help me on same.

 const groups = ['A','B','C','D','E']


for (let i = 0; i < groups.length; i++) {
    if (groups[i]==='A'&&  groups[i] ==='B'  ) setAdmin(true);
    if (groups[i]==='C' && groups[i] ==='E'   ) setResearcher(true);
    if (groups[i]==='B' && groups[i] ==='C' && groups[i] ==='D' ) setRiskMgr(true);

}

I know it is not working because it is comparing element with multiple values. How can I resolve this?

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

0

You can use every and includes to utilize your logic

const groups = ['A', 'B', 'C', 'D', 'E']

const userGroups = {
  admin: ['A', 'B'],
  researcher: ['C', 'E'],
  riskManager: ['B', 'C', 'D']
}

function setAdmin() {
  console.log('admin')
}

function setResearcher() {
  console.log('researcher')
}

function setRiskMgr() {
  console.log('risk manager')
}


if (userGroups.admin.every(group => groups.includes(group))) setAdmin(true);
if (userGroups.researcher.every(group => groups.includes(group))) setResearcher(true);
if (userGroups.riskManager.every(group => groups.includes(group))) setRiskMgr(true);

Less repeated code with a separate object for role checks

const groups = ['A', 'B', 'C', 'D', 'E']

const userGroups = {
  admin: {
    values: ['A', 'B'],
    set: function() {
      setAdmin(true)
    }
  },
  researcher: {
    values: ['C', 'E'],
    set: function() {
      setResearcher(true)
    }
  },
  riskManager: {
    values: ['B', 'C', 'D'],
    set: function() {
       setRiskMgr(true);
    }
  }
}

function setAdmin() {
  console.log('admin')
}

function setResearcher() {
  console.log('researcher')
}

function setRiskMgr() {
  console.log('risk manager')
}

for(const key in userGroups) {
  if(userGroups[key].values.every(group => groups.includes(group))) {
    userGroups[key].set();
  }
}

about 4 years ago · Juan Pablo Isaza Relatório

0

As @ChrisG mentioned, you can use Array.includes or Array.some instead.

const groups = ['A','B','C','D','E']

if (groups.some(group => ['A', 'B'].includes(group))) {
  setAdmin(true);
} else if (...) {
...
}
about 4 years ago · Juan Pablo Isaza Relatório

0

Its quite a simple solution with Array.includes

 const groups = ['A','B','C','D','E']

 if(groups.includes('A') && groups.includes('B')) {
    setAdmin(true);
 } else if(groups.includes('C') && groups.includes('E')) {
   setReasercher(true)
 } // ...
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