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

357
Views
¿Cómo devolver índices de los valores filtrados, que son iguales a num?

 function fMI(num,arr){ let digit = arr.toString().split(''); let realDigit = digit.map(Number); console.log("Is RealDigit an array: ",Array.isArray(realDigit)); console.log(realDigit.filter((v,i,a) => (v==num)? i:'')); } fMI(1,[1, 11, 34, 52, 61]);

// Cree una función que tome un número y una matriz de números como parámetro // y devuelva los índices de los números de la matriz que contienen el número dado // o devuelva una lista vacía (si el número no es parte de ningún de los números en la matriz)

Salida de muestra: // console.log(findMatchingIndexes(1, [1, 11, 34, 52, 61])); // debe imprimir: [0, 1, 4]

Estoy luchando por devolver los índices de los valores de una matriz. El código que he escrito hasta ahora toma un número y lo compara con la matriz que toma la función. Ahora, estoy en la fase en la que quiero devolver los índices donde los valores de la matriz son iguales al número tomado por la función para comparación.

¿Cómo puedo hacer que esto funcione? Porque después del método de filtro, obtengo solo 3 veces el número 1, lo cual no es correcto.

 function fMI(num:number,arr:number[]){ let digit = arr.toString().split(''); let realDigit = digit.map(Number); console.log("Is RealDigit an array: ",Array.isArray(realDigit)); console.log(realDigit.filter((v,i,a) => (v==num)? i:'')); } fMI(1,[1, 11, 34, 52, 61]);
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Puedes usar un bucle for tradicional:

 function fMI(num, arr) { let result = []; let numArr = arr.map(item => Number(item)); for (var i = 0; i < numArr.length; i++) { if (numArr[i] == num) { result.push(i); } } console.log(result); } fMI(1, [1, 11, 34, 52, 61]);

about 4 years ago · Juan Pablo Isaza Report

0

Nueva respuesta

Puede usar el método de cadena includes así:

 function fMI(num: number, arr: number[]) { const indexes: number[] = []; arr.forEach((value, index) => { if (value.toString().includes(num.toString())) { indexes.push(index); } }) return indexes; } fMI(1, [1, 11, 34, 52, 61]); // [0, 1, 4]

respuesta antigua

Puede usar forEach con un segundo argumento que es el índice del elemento. Tenga en cuenta que está especificando arr como una matriz de números, por lo que no es necesario volver a convertirlos en números.

 function fMI(num: number, arr: number[]) { const indexes: number[] = []; arr.forEach((value, index) => { if (value === num) { indexes.push(index); } }) return indexes; }

Las 4 líneas que ha escrito no ayudan con la lógica, por eso lo eliminé. Si quieres saber por qué, deja un comentario en esta respuesta y responderé tus preguntas.

about 4 years ago · Juan Pablo Isaza Report

0

Aquí hay una toma interesante:

 function fMI(num,arr) { return arr .map((n) => n.toString().split('') .map((m) => parseInt(m))) .map((o, i) => o.some((p) => p === num) ? i : null) .filter((f) => f !== null); } const result = fMI(1,[1, 11, 34, 52, 61]); console.log(result);

Primero revisamos todos los números en la matriz, los convertimos en cadenas y los dividimos para reemplazar los números originales con matrices de dígitos. Luego ejecutamos esas matrices de dígitos a través de parseInt y las convertimos en matrices de números. Finalmente, usamos .some para verificar si alguno de los dígitos en la matriz de dígitos es num y devolvemos una matriz de índices o nulos que ejecutamos a través de un filtro que elimina los nulos y finalmente devolvemos una matriz de los índices para donde cualquiera de los dígitos del número es lo mismo que num.

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!