Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

242
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!