Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

353
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda