【发布时间】:2022-08-14 12:16:50
【问题描述】:
我实现了一个 Javascript 函数 (\'setData()\') 并使用另一个函数 (\'getDataSet(data, id)\') 创建了最终代码。 getDataSet(data, id) 将被调用任意次数并收集所有数据集,setData() 函数将创建图表。
function getDataSet(data, id){
//data is a object and name is a element ID
//do something
}
function setData(){
var chartName;
var x = new Array;
for (var i = 0; i < arguments.length; i++) {
if (i != 0) {
console.log(arguments[i]);
x.push(arguments[i]);
}
else{
console.log(arguments[0]);
chartName = arguments[0];
}
}
}
当我按以下方式使用时,它可以工作。
setData(\"viewPoint\", getDataSet(x, \'step1\'), getDataSet(y, \'step2\'), getDataSet(z, \'step3\'));
但是调用 getDataSet(data, id) 函数的次数会根据数据集的数量而改变。 setData() 函数的参数数量将发生变化。我在那里实现了 showCharts() 函数,如下所示。
//Main function
function showCharts(){ // <- Not working function
var objects;
// Run an array to retrieve data and using them need to call getDataSet()
// finally add their return values as arguments into setData()
objects += getDataSet(data, id) + \",\"; // <- create data sets separatly
setData(objects); // <- show all data sets in one chart
}
但仍然无法弄清楚如何将未知数量的对象作为参数传递给 showCharts() 函数。请帮我。
这是真正的code。第 132 行。
-
使用数组而不是大量参数,可能是您最好的选择。
-
改为使用逻辑来形成 JSON 对象。例如: { \"viewPoint\" : { \"step1\" : [...DataSetValuesArrayStep1..] , \"step2\" : [...DataSetValuesArrayForStep2...] } }
-
您可以使用点分符号,例如:
function showCharts(...args)。然后你可以传递任意数量的参数。在函数本身args是一个数组
标签: javascript object