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

206
Visualizações
¿Cómo puedo comparar dos matrices para crear una nueva?

Realizo dos llamadas api y necesito comparar los resultados y crear una nueva matriz que contenga solo los valores de la segunda llamada que no son iguales a la primera

 const listaRealmTrovata = async () => { await axios.get(APICALL1) .then((realmUserAttivi) => { axios.get(APICALL2) .then((realmAttivi) => { realmUserAttivi.data.map((realmUserAttivo) => { realmAttivi.data.filter((res) => { if (realmUserAttivo.realm.id !== res.id) { setListaRealm(previousListRealm => [...previousListRealm, { value: res.id, label: res.realmId }]); } }) }) }) }) };

De esta forma obtengo una lista con valores repetidos, porque comparo cada elemento del primer arreglo cada vez con los elementos del segundo arreglo

Ejemplo:

 realmUserAttivi.data : [ 0: {id:1} 1: {id:2} 3: {id:3} ] realmAttivi.data : [ 0: {id:1} 1: {id:5} 3: {id:3} ]

por lo que el resultado que me gustaría obtener es:

listaRealm: [0: {id:5}] // the only one that isn't in equal in the two array.

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

0

Aquí, la variable notPresent contendrá datos de realmAttivi que no se encuentran en realmUserAttivo.

 //api call code .then((realmAttivi) => { const notPresent = realmAttivi.filter(ra => !realmUserAttivo.some(rua => rua.id === ra.id)); setListaRealm(previousListRealm => [...previousListRealm, ...notPresent]); })
about 4 years ago · Juan Pablo Isaza Relatório

0

 realmUserAttivi = [ {id:1}, {id:2}, {id:3}, ] realmAttivi = [ {id:1}, {id:5}, {id:3} ] const notRepeated = (arr1, arr2) => arr2.filter(objArr2 => !arr1.find(objArr1 => objArr2.id == objArr1.id)) notRepeated(realmUserAttivi,realmAttivi)

esto devolverá [{id:5}]

about 4 years ago · Juan Pablo Isaza Relatório

0

Pensé que si la matriz se vuelve enorme, ya que el algoritmo que se usa es n ^ 2, podría congelar la página, ya que JS estaría ocupado, intenté hacerlo asíncrono.

 let realmUserAttivi = [ {id:1}, {id:2}, {id:3}, ], realmAttivi = [ {id:1}, {id:5}, {id:3} ] async function findCommon() { let promises = [] for (let i = 0; i < realmAttivi.length; i++) { promises.push(SetTimoutPromise(i)) } let res = await Promise.all(promises) res = res.filter(e => e) return res } let SetTimoutPromise =(index)=> new Promise((resolve, reject) => { setTimeout(() => { if (!realmAttivi.find((objArr1 => realmUserAttivi[index].id == objArr1.id))) { resolve(realmAttivi[index]) } resolve() },0) }) findCommon()
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