Tengo el siguiente código y estoy intentando insertar números generados aleatoriamente en la matriz de datos. Simplemente no estoy muy seguro de cómo acceder a la matriz. Sé que mi código es probablemente muy descuidado e ineficiente, pero estoy haciendo todo lo posible para aprender y me quedé atascado en esto. Realmente agradecería cualquier ayuda.
<script> var balance = 0; function nextDay() { var dayCount = 0; if (dayCount < 5) { randNum = Math.random() * (max - min) + min; console.log(randNum); max = randNum + 50; min = randNum - 50; dayCount++; } } function sell() { balance = balance + randNum; console.log("current balance:" + balance); randNum = 0; max = randNum + 50; min = randNum - 50; } const startingValues = []; function getStartingValues() { var max = 100; var min = -100; for (let startingCount = 0; startingCount < 8; startingCount++) { var randNum = Math.random() * (max - min) + min; max = randNum + 500; min = randNum - 100; data.datasets[3].data.push(randNum); console.log(startingValues[startingCount]); } } getStartingValues(); const labels = ["Week 1", "Week 2", "Week 3", "Week 4", "Week 5", "Week 6"]; const data = { labels: labels, datasets: [ { label: "graph", backgroundColor: "rgb(255, 99, 132)", borderColor: "rgb(255, 99, 132)", data: [], }, ], }; const config = { type: "line", data: data, options: {}, }; </script>Hola y bienvenido a stackoverflow Jacob. El problema parece estar en esta línea de código data.datasets[3].data.push(randNum); . Está accediendo a la propiedad de conjuntos de datasets que tiene una matriz como valor. Está intentando acceder al índice 3 en esta matriz que no existe. En una inspección más cercana, nos damos cuenta de que la matriz contiene solo un elemento que es un objeto. Entonces, en su lugar, deberías estar haciendo esto data.datasets[0].data.push(randNum); lo que le permite acceder al primer elemento de la matriz que está en el índice 0. Espero que tenga sentido.
Usando el constructor Array , puede crear matrices anidadas (también hay otras formas).
const data = []; const startingValues = []; function getStartingValues() { var max = 100 var min = -100 for (let i = 0; i <= 7; i++) { data[i] = Math.random() * (max - min) + min; } //Add data as nested arrray to startingValues startingValues[0] = new Array(data); } getStartingValues(); console.log(startingValues); //Starting values is a 1x8 nested array