如何使用 JavaScript 将值推送到嵌套数组中?
How can I push values into nested array with JavaScript?
我有以下代码,我正在尝试将随机生成的数字推送到数据数组中。我只是不太确定如何访问数组。我知道我的代码可能非常草率和低效,但我正在尽我最大的努力学习并坚持下去。如果有任何帮助,我将不胜感激。
<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>
您好,欢迎来到 Whosebug Jacob。问题似乎出在这行代码 data.datasets[3].data.push(randNum);
。您正在访问以数组为值的 datasets
属性。您正在尝试访问此数组中不存在的索引 3。仔细观察后,我们意识到数组只包含一个元素,它是一个对象。因此,您应该这样做 data.datasets[0].data.push(randNum);
,它允许您访问数组中索引为 0 的第一个元素。我希望这是有道理的。
使用 Array
构造函数,您可以创建嵌套数组(还有其他方法)。
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
我有以下代码,我正在尝试将随机生成的数字推送到数据数组中。我只是不太确定如何访问数组。我知道我的代码可能非常草率和低效,但我正在尽我最大的努力学习并坚持下去。如果有任何帮助,我将不胜感激。
<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>
您好,欢迎来到 Whosebug Jacob。问题似乎出在这行代码 data.datasets[3].data.push(randNum);
。您正在访问以数组为值的 datasets
属性。您正在尝试访问此数组中不存在的索引 3。仔细观察后,我们意识到数组只包含一个元素,它是一个对象。因此,您应该这样做 data.datasets[0].data.push(randNum);
,它允许您访问数组中索引为 0 的第一个元素。我希望这是有道理的。
使用 Array
构造函数,您可以创建嵌套数组(还有其他方法)。
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