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

241
Vistas
Bucle anidado para devolver una matriz de colores dependiendo de la longitud de la matriz de valores

Estoy tratando de devolver una matriz de colores que depende de la cantidad de valores que tengo en una matriz separada. Por ejemplo, tengo una matriz de valores [1, 5, 12, 23, 33, 76, 100, 354, 123], valores.longitud = 9. Mi matriz de colores tiene 8 entradas, por lo tanto, mi matriz de colores debería continuar bucle hasta llegar a 9 entradas. El siguiente gráfico de barras es lo que quiero lograr, el gráfico puede tener 100 entradas, por lo que los colores continuarán en bucle hasta que alcancen las 100 entradas. Lo siguiente funciona con el siguiente código, sin embargo, esto devuelve 9 * 8 entradas en el archivo console.log mientras estoy recorriendo cada valor y presionando la matriz de colores. El resultado debería ser una matriz de un solo color de 9 entradas. Agradezco cualquier ayuda.

 const barColors = () => { const colorsArr = []; // const colorsArr = ['rgba(3, 4, 94, 1)', 'rgba(3, 4, 94, .8)', 'rgba(3, 4, 94, .6)', 'rgba(3, 4, 94, .4)', 'rgba(3, 4, 94, .2)', 'rgba(3, 4, 94, .4)', 'rgba(3, 4, 94, .6)', 'rgba(3, 4, 94, .8)']; const values = [1, 5, 12, 23, 33, 76, 100, 354, 123]; values.forEach(() => colorsArr.push( 'rgba(3, 4, 94, 1)', 'rgba(3, 4, 94, .8)', 'rgba(3, 4, 94, .6)', 'rgba(3, 4, 94, .4)', 'rgba(3, 4, 94, .2)', 'rgba(3, 4, 94, .4)', 'rgba(3, 4, 94, .6)', 'rgba(3, 4, 94, .8)' ) ); console.log(colorsArr); return colorsArr; };

gráfico de barras

consola.log

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

0

Si entiendo bien, desea que el noveno elemento de valores obtenga el primer color nuevamente.

 const colorsArr = ['rgba(3, 4, 94, 1)', 'rgba(3, 4, 94, .8)', 'rgba(3, 4, 94, .6)', 'rgba(3, 4, 94, .4)', 'rgba(3, 4, 94, .2)', 'rgba(3, 4, 94, .4)', 'rgba(3, 4, 94, .6)', 'rgba(3, 4, 94, .8)']; const values = [1, 5, 12, 23, 33, 76, 100, 354, 123]; values.forEach((element, index) => $("#chart").append("<div><span>" + colorsArr[index % colorsArr.length] + "</span><div style='background-color: " + colorsArr[index % colorsArr.length] + "; width:" + element + "px; height:20px; margin:2px'></div></div>") );
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="chart"></div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

const barColors = () => { const palette = ['rgba(3, 4, 94, 1)', 'rgba(3, 4, 94, .8)', 'rgba(3, 4, 94, .6)', 'rgba(3, 4, 94, .4)', 'rgba(3, 4, 94, .2)', 'rgba(3, 4, 94, .4)', 'rgba(3, 4, 94, .6)', 'rgba(3, 4, 94, .8)']; const values = [1, 5, 12, 23, 33, 76, 100, 354, 123]; const colorsArr = [] for (let i = 0; i < values.length; i++) { colorsArr.push(palette[i%palette.length]) } console.log(colorsArr) return colorsArr }

La única parte que puede necesitar explicación es palette[i%palette.length] . Esto es para evitar sobrepasar la longitud de la paleta. Si hay más valores que colores en la paleta, comenzará desde el índice 0 de la paleta para agregar colores.

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