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

241
Visualizações
Encuentra un número único en una matriz

¿Alguien puede explicarme qué hace exactamente esta línea de código?

 function findUniq(array) { return array.find((item) => array.indexOf(item) === array.lastIndexOf(item)) }

Quiero saber qué está haciendo exactamente esta línea:

 return array.find((item) => array.indexOf(item) === array.lastIndexOf(item))

Lo que creo que está sucediendo aquí es que para cada elemento dentro de la matriz se compara el primer índice de ese elemento con el último índice del elemento. devuelve los elementos que son iguales entre sí.

No entiendo cómo está devolviendo la matriz única.

Si tuviera que escribir esta función sería así:

 return array.find((item) => array.indexOf(item) != array.lastIndexOf(item))

Sin embargo, eso no funciona ya que está devolviendo el número común.

Gracias

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

0

El método Array.prototype.find() toma una función de predicado (una función que devuelve verdadero o falso según los parámetros de entrada) y luego devuelve el elemento siempre que el predicado sea verdadero.

En su caso, dado el escenario:

 var array1 = [1,2,1,3,5,2,3]; var array2 = [1,2,1,3,5,5,3]; function findUnique(array){ return array.find( // The code below runs for every element of the array. // - for each element, it takes the element and checks if first position, is the same as last position in the array (item) => array.indexOf(item) === array.lastIndexOf(item) // ); } console.log("For array 1, unique item is: ",findUnique(array1)); console.log("For array 2, unique item is: ",findUnique(array2));

Array.prototype.indexOf(yourArrayElement) devuelve la posición de la primera aparición de yourArrayElement

Oh, por otro lado, Array.prototype.lastIndexOf(yourArrayElement) devuelve la posición de la última aparición de yourArrayElement

Si yourArrayElement solo existe una vez dentro de la matriz, la primera y la última posición serán las mismas y Array.prototype.find() devolverá ese elemento.

about 4 years ago · Juan Pablo Isaza Relatório

0

indexOf devuelve la primera posición encontrada del elemento dado en la matriz, mientras que lastIndexOf devuelve la última posición del elemento dado en la matriz.

Si indexOf === lastIndexOf , significa que el primer elemento encontrado es el mismo que el último --> el elemento es único en la matriz.

about 4 years ago · Juan Pablo Isaza Relatório

0

La razón por la que devuelve un número único, porque la función de find se repite desde el principio y desde el final en cada iteración, por lo que si el índice de indexOf que se repite desde el principio y lastIndexOf que se repite desde el final es igual, significa que hay no hay duplicados en la matriz junto al elemento actual.

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