【发布时间】:2017-12-02 20:58:45
【问题描述】:
这是我到目前为止所做的
function setcanvas(ID,Count,Count1,Count2,Count3,Count4,Count5,Count6,Count7,Count8,Count9,Count10){
var ctx = document.getElementById(ID).getContext('2d');
ctx.canvas.width = 350;
ctx.canvas.height = 300;
var arr=[];
var y=1;
var str = "Count";
while(y <= Count){
var str2 = str + y;
arr.push(str2);
y++;
}
}
我希望我的数组的值是参数上的值,但它不是。相反,我看到的值是 Count1、Count2、Count3 ...。有人可以向我解释一下吗?有什么方法可以实现这个目标吗?
找到解决方案
感谢下面的评论。我想出了这个解决方案。
function setcanvas(ID,Count,Count1,Count2,Count3,Count4,Count5,Count6,Count7,Count8,Count9,Count10){
var ctx = document.getElementById(ID).getContext('2d');
ctx.canvas.width = 350;
ctx.canvas.height = 300;
var myBarChart = new Chart(ctx, {
type: 'horizontalBar',
data: {
labels: ["Analytics 1", "Analytics 2", "Analytics 3", "Analytics 4", "Analytics 5"],
datasets: [{
label: "Count",
data: getCountByArguments(Count1, Count2, Count3, Count4, Count5, Count6, Count7, Count8, Count9, Count10),
backgroundColor: setUpBC(Count)
}]
},
options: {}
});
function getCountByArguments(){
var arr = [];
var i=0;
while(i < Count) {
arr.push(arguments[i]);
i++;
}
return arr;
}
}
添加函数 getCountByArguments
【问题讨论】:
-
使用可以使用
arguments对象来获取参数这可能会有所帮助stackoverflow.com/questions/4633125/… -
是的,
str + y不会神奇地让 Javascript 将其评估为变量。您想要的是变量变量,但在这种特定情况下,您应该查看arguments对象。 -
感谢大家,因为我知道了这个论点,我找到了解决方案
标签: javascript arrays array-push