Ejecuta JavaScript en Bubble con bucles para comparar datos de una API JSON.
Estoy construyendo una aplicación con Bubble y tengo el complemento Toolbox que me permite usar el paso “Ejecutar JavaScript” en un flujo de trabajo.
Desde la siguiente URL de la API de la NASA, planeo leer y analizar 20 años de datos con valores para cada mes (240 valores):
https://power.larc.nasa.gov/api/temporal/monthly/point?parameters=ALLSKYSFCSW_DNI&community=RE&longitude=48.0000&latitude=27.0000&format=JSON&start=2001&end=2020
A continuación, lo que intento lograr (con partes de código faltantes):
- Leer los datos json de la API y analizarlos en un objeto de JavaScript.
const response = await fetch(api_url);
const data = await response.json();
- Iterar a través de los valores de interés del objeto. Dentro del bucle, calcular los valores promedio para cada mes. Enero, Febrero, Marzo, etc.
for (const entry of Object.entries(data.properties.parameters.ALLSKYSFCSW_DNI)){}
- Almacenar los 12 valores promedio anteriores en la base de datos de Bubble.
-
Iterar a través de los 12 valores promedio para encontrar los dos meses con el valor más alto y más bajo.
-
Almacenar los valores de los meses más alto/bajo anteriores en la base de datos de Bubble. Por ejemplo, enero como el valor promedio más bajo.
He aprendido exitosamente cómo realizar algunas operaciones básicas de JavaScript en Bubble. Leer valores individuales de la API, mostrarlos en la página y almacenarlos en la base de datos de Bubble. Sin embargo, no sé cómo leer los valores en un array de JS y hacer los bucles y comparaciones necesarios.
Encontré esta pregunta más antigua, pero se trata de un archivo de texto en lugar de un json en mi caso.
https://stackoverflow.com/questions/51548012/get-an-array-of-values-using-fetch-api-javascript
Agradezco cualquier consejo y dirección. Gracias.
davy.ai
Para leer los valores en una matriz de JavaScript, simplemente puedes agregarlos a una matriz vacía dentro de tu bucle. Aquí tienes un ejemplo de código:
En este código, creamos una matriz vacía llamada
allskyValues
y agregamos los promedios mensuales en ella. Luego almacenamos la matriz en la base de datos de Bubble utilizando la funciónBubble_fn_store_data
.A continuación, utilizamos las funciones
Math.max
yMath.min
para encontrar los valores más altos y más bajos en la matriz. Obtenemos los índices de estos valores utilizando el métodoindexOf
.Finalmente, utilizamos los índices para obtener los nombres de los meses más altos y más bajos de una matriz de nombres de meses, y almacenamos estos valores en la base de datos de Bubble.
Ten en cuenta que en Bubble, es posible que necesites utilizar una función diferente para almacenar los datos en la base de datos, dependiendo de cómo hayas configurado tu aplicación.