我正在尝试生成随机值,这是我的代码:
function generateData(total) {
var total = total;
var names = ['Antonie Lereno', 'Laura Saucini', 'Marco Mendez Ortega', 'Lucas Simon Jainte', 'Angel Rodriguez', 'Manuel Salgado', 'Rosario Parrales'];
var months = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];
return {
labels: months,
datasets: (function () {
var ret = [];
for (var i = 0; i < total; i++) {
var background = [Math.round(Math.random() * 254), Math.round(Math.random() * 254), Math.round(Math.random() * 254)];
ret[i] = {
label: names[Math.round(Math.random() * names.length)],
data: (function () {
var dat = [];
for (var j = 0; j < months.length; j++) {
dat[j] = Math.round(Math.random() * 50);
}
return dat;
}),
backgroundColor: 'rgba(' + background[0] + ',' + background[1] + ',' + background[2] + ',0.2)',
borderColor: 'rgba(' + background[0] + ',' + background[1] + ',' + background[2] + ',1)',
borderWidth: 1
};
}
return ret;
})
};
}
例如,当我在 console.log(generateData(1)); 上调试函数时;它只显示在数组“标签”中,但“数据集”为空。有什么帮助吗?谢谢。
您应该执行 IIFE。在该函数之后添加一组括号。
datasets: (function () {
var ret = [];
for (var i = 0; i < total; i++) {
var background = [Math.round(Math.random() * 254), Math.round(Math.random() * 254), Math.round(Math.random() * 254)];
ret[i] = {
label: names[Math.round(Math.random() * names.length)],
data: (function () {
var dat = [];
for (var j = 0; j < months.length; j++) {
dat[j] = Math.round(Math.random() * 50);
}
return dat;
}),
backgroundColor: 'rgba(' + background[0] + ',' + background[1] + ',' + background[2] + ',0.2)',
borderColor: 'rgba(' + background[0] + ',' + background[1] + ',' + background[2] + ',1)',
borderWidth: 1
};
}
return ret;
})() // <----------------------- Look here
工作片段
而且您不需要设置var total = total;
而是查看以下方式:
function generateData(total) {
var names = ['Antonie Lereno', 'Laura Saucini', 'Marco Mendez Ortega', 'Lucas Simon Jainte', 'Angel Rodriguez', 'Manuel Salgado', 'Rosario Parrales'];
var months = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];
return {
labels: months,
datasets: (function() {
var ret = [];
for (var i = 0; i < total; i++) {
var background = [Math.round(Math.random() * 254), Math.round(Math.random() * 254), Math.round(Math.random() * 254)];
ret[i] = {
label: names[Math.round(Math.random() * names.length)],
data: (function() {
var dat = [];
for (var j = 0; j < months.length; j++) {
dat[j] = Math.round(Math.random() * 50);
}
return dat;
}),
backgroundColor: 'rgba(' + background[0] + ',' + background[1] + ',' + background[2] + ',0.2)',
borderColor: 'rgba(' + background[0] + ',' + background[1] + ',' + background[2] + ',1)',
borderWidth: 1
};
}
return ret;
})()
};
}
console.log(generateData(5));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句