Javascript 查特赢了';我不画画。返回字符串值而不是数字值-Meteor-Chartjs
所以我尝试用meteor中的chartjs构建一个饼图 我很确定问题在于这里讨论的是优先顺序 我需要这个东西按这个顺序Javascript 查特赢了';我不画画。返回字符串值而不是数字值-Meteor-Chartjs,javascript,arrays,meteor,push,chart.js,Javascript,Arrays,Meteor,Push,Chart.js,所以我尝试用meteor中的chartjs构建一个饼图 我很确定问题在于这里讨论的是优先顺序 我需要这个东西按这个顺序 { value: 900.65, color:"#red", highlight: "#FF5A5E", label: "income" } { color: "#red" highlight: "#FF5A5E" label: "income" value: 900.65 } 但我是按这个顺序来的 {
{
value: 900.65,
color:"#red",
highlight: "#FF5A5E",
label: "income"
}
{
color: "#red"
highlight: "#FF5A5E"
label: "income"
value: 900.65
}
但我是按这个顺序来的
{
value: 900.65,
color:"#red",
highlight: "#FF5A5E",
label: "income"
}
{
color: "#red"
highlight: "#FF5A5E"
label: "income"
value: 900.65
}
这是我的循环
function drawExpPie(){
data = [];
var Task = Tasks.find({},{fields:{value:1,text:1}}).fetch();
for(var i = 0; i < Task.length; i++) {
var newdataset = {
label:Task[i].text,
highlight: "#FCA456",
color: "red",
value:Task[i].value,
};
data.push(newdataset);
}
console.log(data);
var context = document.getElementById('myExpChart').getContext('2d');
var myPieChart = new Chart(context).Pie(data);
}
Template.exp.helpers({
exp: function() {return Session.get("exp");}
});
Template.exp.rendered = function(){
drawExpPie();
};
函数drawerxpie(){
数据=[];
var Task=Tasks.find({},{fields:{value:1,text:1}}).fetch();
对于(变量i=0;i
感谢您的帮助。谢谢这把它修好了
for(var i = 0; i < Task.length; i++) {
data.push({
label: Task[i].text,
highlight: "#FF5A5E",
color:"#F7464A",
value: Number(Task[i].value)
});
}
for(变量i=0;i
注释记号:value:Number(任务[i].value)可能也会起作用。这解决了它
for(var i = 0; i < Task.length; i++) {
data.push({
label: Task[i].text,
highlight: "#FF5A5E",
color:"#F7464A",
value: Number(Task[i].value)
});
}
for(变量i=0;i
注释记号:value:Number(任务[i].value)可能也会起作用。更改
value:Task[i].value
to
value:Task[i].value || 0,
将
值:任务[i]。值更改为
value:Task[i].value || 0,
到底是什么问题?任何导致您考虑优先级的错误?javascript中的对象没有任何保证的顺序。两个对象的字段值也不同。是否有您正在谈论但未显示的阵列?我很困惑。此外,for循环无法生成第一个对象(不同的值)。属性顺序无关紧要。您试图解决的实际问题是什么?如果data
变量实际上是一个数组,那么data.push()
将不会“重置”数组。每次它都会附加到数组的末尾。一定有你误解的东西,或者你没有给我们看的东西。我还将重申关于对象中属性顺序的其他注释:这并不重要。如果您在顺序确实重要的地方编写代码,例如在
循环中为-编写一个,则很可能是做错了。当然,像chart.js这样的代码不会依赖于对象中属性的顺序。顺便说一句,代码无意中将数据
作为全局变量。这可能会把事情搞砸,这取决于代码的其他功能。它应该是var data=[]代码>。到底是什么问题?任何导致您考虑优先级的错误?javascript中的对象没有任何保证的顺序。两个对象的字段值也不同。是否有您正在谈论但未显示的阵列?我很困惑。此外,for循环无法生成第一个对象(不同的值)。属性顺序无关紧要。您试图解决的实际问题是什么?如果data
变量实际上是一个数组,那么data.push()
将不会“重置”数组。每次它都会附加到数组的末尾。一定有你误解的东西,或者你没有给我们看的东西。我还将重申关于对象中属性顺序的其他注释:这并不重要。如果您在顺序确实重要的地方编写代码,例如在
循环中为
-编写一个,则很可能是做错了。当然,像chart.js这样的代码不会依赖于对象中属性的顺序。顺便说一句,代码无意中将数据
作为全局变量。这可能会把事情搞砸,这取决于代码的其他功能。它应该是var data=[]代码>。我试过了,没有骰子。我还试过label:Task[I].text | | |“”,我试过了,没有骰子。我还尝试了label:Task[I].text | |“”,