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

84
Vistas
¿En qué índice la suma alcanza cierto valor?

Tengo una matriz de números y algún límite.

 const a = [1,2,1,3,4,1,2]; const limit = 5;

¿Cuál es la forma más javascripty de reducir esta matriz al índice de modo que la suma desde el principio hasta el índice exceda el limit ?

hice

 function findIndex(nums, limit) { let s = 0; for (let [index, num] of nums.entries()) { s += num; if (s >= limit) { return index; } } return nums.length; }
 findIndex([1,2,1,3,4,1,2], 5) 3

¿Hay una forma más ordenada de hacer esto usando reduce o algo más?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Como busca el índice, puede usar el método de matriz .findIndex() . El siguiente código se suma a la sum de cada elemento en arr y luego verifica si el nuevo valor de la sum acumulada es mayor o igual al límite. Si es así, la devolución de llamada para findIndex devolverá verdadero, brindándole el índice del elemento para el que devolvió verdadero. Si la función de devolución de llamada a findIndex no devuelve verdadero para ningún valor, dará como resultado -1 , que luego puede verificar antes de regresar para ver si necesita devolver la longitud de la matriz o el índice encontrado:

 const findIndex = (arr, limit) => { let sum = 0; const idx = arr.findIndex((num, idx) => (sum+=num) >= limit); return idx > 0 ? idx : arr.length; } console.log(findIndex([1,2,1,3,4,1,2], 5));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Ya que necesitas la

1) index hasta el cual la sum es mayor o igual al limit

2) Desea return temprano tan pronto como la suma exceda el límite

entonces deberías ir a la vieja escuela for bucle. No hay necesidad de acumular el index y el value usando nums.entries()

 function findIndex(nums, limit) { let sum = 0; for (let i = 0; i < nums.length; ++i) { sum += nums[i]; if (sum >= limit) return i; } // Return something explicitely to // indicate that sum can't exceeds limit. // You may return -1 if you like } console.log(findIndex([1, 2, 1, 3, 4, 1, 2], 5));

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