es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué esta parte en particular hace que mi navegador se bloquee?

Solo quería agregar la siguiente parte a mi código. Cuando lo hago, no obtengo más salida en la consola y el navegador se bloquea cada vez. Si comento esta parte, todo vuelve a funcionar bien. Ya he probado de todo (ejecuciones de bucle más cortas, conjunto de datos más pequeño, …) pero nada ayuda. ¿Alguien tiene alguna idea?

var index_avg_temp_array = []; // array que guarda la temperatura de cada cluster
index_avg_temp_array.push([]); // crea un array 2D
for (id = 0; id < cluster_points; id++) {
  // id = índice del cluster

  var t_array = []; // crea un array / establece el array en 'vacío'
  var amount = 0;
  var check = 0;

  // toma el id y verifica si day_array[].index === id
  for (day = 0; day < days_of_year; day++) {
    // corre 365/366 veces, day_array tiene 1 entrada por cada día

    if (day_array[day].index === id) {
      for (hour = 0; hour < 24; hour++) {
        // si es verdadero, guarda las temperaturas por hora en hour_array

        var row = day * 24 + hour;
        var t_temp = hour_array[row].temp; // temperatura de cada hora
        t_array.push(t_temp);
      }
      check = 1; // si se encontró el índice al menos 1 vez
      amount = amount + 1;
    }

  }
  if (check === 1) {
    // verifica si se encontró el índice al menos 1 vez
    for (hour = 0; hour < 24; hour++) {
      var avg = 0;
      for (counter = 0; counter < t_array.length; counter + 24) {
        var row = hour * 24 + counter;
        avg = avg + t_array[row]; // suma cada hora
      }

      var avg_hours = avg / amount; // calcula el promedio de la hora
      index_avg_temp_array[id].push(avg_hours); // guarda las temperaturas promedio de cada hora para cada punto de cluster
    }
  }
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Es difícil decir exactamente qué podría estar causando el fallo sin más información sobre los datos que se están utilizando y el comportamiento del código. Sin embargo, un enfoque general para depurar podría ser usar declaraciones console.log() para comprobar los valores de las variables y ver dónde está fallando el código. Aquí tienes algunas sugerencias de lugares para empezar:

    • Comprueba que las variables cluster_points y days_of_year estén definidas y tengan valores esperados. Si son demasiado grandes, por ejemplo, el script podría estar agotando la memoria.
    • Utiliza declaraciones console.log() para seguir el progreso del bucle y ver dónde podría estar quedándose atascado. Por ejemplo, añade una declaración console.log después del bucle for más interno para ver si se está ejecutando más veces de las esperadas.
    • Asegúrate de que los índices utilizados para acceder a elementos en los arrays day_array y hour_array estén dentro de los límites de los arrays. Si un índice está fuera de los límites, el script podría estar lanzando un error y fallando.
    • Verifica el cálculo de la variable row en los bucles hour. Asegúrate de que esté apuntando al elemento correcto en el hour_array.
    • Comprueba si hay algún valor infinito o NaN en el t_array. Si los hay, esto podría causar que el cálculo de avg_hours devuelva un valor inesperado y lance un error. Puedes utilizar la función isNaN() para comprobar si hay valores NaN y la función isFinite() para comprobar si hay valores infinitos.

Comments are closed.