gpt4 book ai didi

javascript - 以我自己的格式创建随机数据

转载 作者:行者123 更新时间:2023-12-03 11:14:22 24 4
gpt4 key购买 nike

我想以这种格式创建一些随机数据

var dataStructure = [
{
"data":[
{
"itemLabel":"label1",
"itemValue":0.8
},
{
"itemLabel":"label2",
"itemValue":0.2
},
{
"itemLabel":"label3",
"itemValue":0.7
},
{
"itemLabel":"label4",
"itemValue":0.1
},
],
"label":"biglabel1"
},
{
"data":[
{
"itemLabel":"label1",
"itemValue":0.5
},
{
"itemLabel":"label2",
"itemValue":0.9
},
{
"itemLabel":"label3",
"itemValue":0.1
},
{
"itemLabel":"label4",
"itemValue":0.3
},
],
"label":"biglabel1"
}, ...
]

我写了这段代码

var item = ["label1", "label2", "label3", "label4", "label5"];
var dataStructure2 = [],
dat = [];
data = {};
object = {};
label = ["biglabel1","biglabel2","biglabel3","biglabel4"];

for (var i=0; i<4; i++){
for(var j=0; j<4; j++){
dat.push(data.itemLabel = item[i]);
dat.push(data.itemValue = Math.random());
}
dataStructure2.push(object.data = data, object.label = label[i]);
}

我只是有点困惑这是否正确......也许为时已晚,但我希望有人可以看看,因为浏览器不显示对象名称。

最佳答案

您使用了错误的语法将对象推送到数组。像 dat.push(data.itemLabel = item[i]); 这样的语句不会将对象放入数组中并设置该对象的属性。表达式 data.itemLabel = item[i] 会将值放入对象中,但表达式的值是 item[i],因此这就是推送到的内容数组。

您需要为要插入数组的每个项目创建一个新对象:

var item = ["label1", "label2", "label3", "label4", "label5"];
var dataStructure2 = [], dat, data, object;
var label = ["biglabel1","biglabel2","biglabel3","biglabel4"];

for (var i=0; i<label.length; i++){
dat = [];
for(var j=0; j<item.length; j++){
data = {};
data.itemLabel = item[i];
data.itemValue = Math.floor(Math.random() * 10) / 10;
dat.push(data);
}
object = {};
object.data = dat;
object.label = label[i];
dataStructure2.push(object);
}

或者,您可以使用对象字面量语法,而不是先创建对象然后设置属性。示例:

object = {
data: dat,
label: label[i]
};

您实际上可以直接推送对象,而无需先将其存储在变量中:

dataStructure2.push({
data: dat,
label: label[i]
});

关于javascript - 以我自己的格式创建随机数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27409231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com