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

128
Views
No entiendo cómo este código puede detectar la longitud.
var data = [1, 2, 3, 5, 2, 1, 4]; // iterate over elements and filter var res = data.filter(function (v) { // get the count of the current element in array // and filter based on the count return data.filter(function (v1) { // compare with current element return v1 == v; // check length }).length == 1; }); console.log(res);

Entiendo toda la línea en este código, pero no entiendo cómo puede detectar la length==1 .

(My opinion ) Debido a que recorre cada elemento de la matriz y return boolean value ya sea verdadero o falso, entonces, ¿cómo se puede usar para detectar la longitud?

Este código es para obtener el elemento de la matriz que solo aparece una vez en la matriz.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

  1. El retorno verdadero no es para devolver el booleano, pero cuando devuelve verdadero desde dentro de un filtro, ese elemento se agrega a la matriz resultante de la función de filtro.

  2. El proceso aquí se llama encadenamiento de métodos. En la línea 11, primero, se aplica el filtro a la matriz de datos, luego se aplica el método .length al resultado del filtro, que será una matriz de igual longitud o menor que el número de elementos de la matriz de datos. Luego, finalmente, solo una vez que se llama al retorno, que será un valor booleano utilizado para el filtro externo.

Otro ejemplo:

 function reverseString (inputString) { return inputString.split("").reverse().join() }

En el ejemplo anterior, la función regresa después de la división, luego se invierte en el resultado de la división y luego se une al resultado de la inversa. Solo se devuelve la cadena resultante final.

about 4 years ago · Juan Pablo Isaza Report

0

No pienses en ello como líneas de código. Divide cada segmento de código en su verdadero significado mi padawan

 data.filter(function (v1) { // compare with current element return v1 == v; // check length })

filtra la matriz de datos para devolver una matriz de elementos de data de modo que cada elemento sea igual a v

Al verificar si su longitud es 1, desea devolver verdadero si la matriz tiene solo 1 elemento.

Asi que,

 var res = data.filter(function (v) { // return true if there is only 1 element in data which is equal to v });

Lo que básicamente significa que estamos filtrando data y devolviendo una nueva matriz donde cada elemento es tal que solo tiene una aparición en la matriz.

about 4 years ago · Juan Pablo Isaza Report

0

La función para el filter devuelve un valor booleano, pero el filter en sí mismo devuelve una matriz.

Así por ejemplo:

array.filter(function(element) { return element >= 0; });

dice que la función function(element) { return element >= 0; } se aplicará a cada elemento de la array . Entonces, si el resultado de la función es true , ese elemento existirá en la versión filtrada final de la array (que es lo que devuelve la función de filter ), o no existirá si el resultado es false .

En efecto, todos los números negativos de la array se filtrarán porque devuelven false .

Lo que dice su código es lo siguiente: para cada elemento en data , filtre data para mantener solo los elementos iguales al actual. Si esta lista filtrada tiene solo un elemento, entonces solo puede ser nuestro elemento actual. Por lo tanto, este elemento existe solo una vez y debe mantenerse en el resultado final, por lo que devolvemos true si .length == 1 . Al final, una vez que se hace esto para cada elemento, el filter es lo suficientemente inteligente como para convertir esos resultados de true y false en una matriz de los elementos que produjeron true y omitir los que produjeron false .

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!