Javascript 是否为多个图表定义一个js函数?

Javascript 是否为多个图表定义一个js函数?,javascript,charts,google-visualization,Javascript,Charts,Google Visualization,我有一个html页面可以显示三个部分,但我不知道如何将函数组合在一起,这样我就可以缩短代码,而不是重复代码(并且不确定是否可能) 例如,我有这些重复的函数(3个函数对应3个图表) 这是为了在地图上显示不同的颜色 //为颜色值指定颜色 var colorNames=[]; colorValues.forEach(函数(值){ 如果(值1)&(值2)&(值3)&(值4)&(值5)&(值6)&(值7)&(值8)&(值9)&(值10)&(值11)&(值12)&(值15)&(值确定这是可能的。 实际上,唯

我有一个html页面可以显示三个部分,但我不知道如何将函数组合在一起,这样我就可以缩短代码,而不是重复代码(并且不确定是否可能)

例如,我有这些重复的函数(3个函数对应3个图表)

这是为了在地图上显示不同的颜色
//为颜色值指定颜色
var colorNames=[];
colorValues.forEach(函数(值){
如果(值1)&(值2)&(值3)&(值4)&(值5)&(值6)&(值7)&(值8)&(值9)&(值10)&(值11)&(值12)&(值15)&(值确定这是可能的。
实际上,唯一的区别是图表需要使用的
的id

请参阅以下工作片段,
这里,我使用一个变量来更改
-->
'colormap'+id

所有查询都调用相同的函数-->
handleQueryResponseTR

编辑

与其增加div的id,不如将其传递给函数。
这将确保数据显示在正确的图表上

function handleQueryResponseTR(response1, divId) {
  ...
    var chart1 = new google.visualization.GeoChart(document.getElementById(divId));
而且

    query1.send(function (response) {
      handleQueryResponseTR(response, 'colormap1');
    });
    query2.send(function (response) {
      handleQueryResponseTR(response, 'colormap2');
    });
    query3.send(function (response) {
      handleQueryResponseTR(response, 'colormap3');
    });
请参阅以下更新的代码段


地图1菜单
google.charts.load('current'{
包装:[“地球艺术”],
mapsApiKey:'Aizasyb5ksy9rtrmkv3kzf1hsdzrgzktpsuqeq'
});
google.charts.setOnLoadCallback(DrawRegionMap);
var数据1;
var数据2;
var数据3;
$(函数(){
$(“.preload”).fadeOut(4500,函数(){
$(“.content”).fadeIn(1000);
});
});
函数handleQueryResponseTR(response1,divId){
if(response1.isError()){
警报('查询中的错误:'+response1.getMessage()+'+response1.getDetailedMessage());
返回;
}
data1=response1.getDataTable();
var colorValues=[];
var numRows=data1.getNumberOfRows();
对于(变量i=0;i0)){
defaultRegion=区域[0];
defaultRegion.checked=true;
}
挂图({
目标:默认区域
});
//控制台日志(图纸);
//“单击”处理程序上的收音机
功能绘图图(发送器){
options1.region=null;
如果(sender.target.value!=='all'){
options1.region=sender.target.value;
//console.log(sender.target.value);
}
图表1.绘制(视图1,选项1);
}
}
函数drawRegionsMap(){
var query1=新的google.visualization.Query(“https://docs.google.com/spreadsheets/d/1ysbR58fP12YRfrvWtYoJRrLnbCwooR7kTjVldz-pWJc/edit?usp=sharing");
query1.setQuery('select*where N=“Y”和G=“WEEE”和O=“Country”和H=“Take back policy model”);
//球拍片
var query2=新的google.visualization.Query('https://docs.google.com/spreadsheets/d/1ysbR58fP12YRfrvWtYoJRrLnbCwooR7kTjVldz-pWJc/edit?usp=sharing');
query2.setQuery('select*where N=“Y”和G=“batters”和O=“Country”和H=“Take back policy model”);
//包装纸
var query3=新的google.visualization.Query('https://docs.google.com/spreadsheets/d/1ysbR58fP12YRfrvWtYoJRrLnbCwooR7kTjVldz-pWJc/edit?usp=sharing');
query3.setQuery('select*where N=“Y”和G=“Packaging”和O=“Country”和H=“Take back policy model”);
查询1.发送(函数(响应){
handleQueryResponseTR(响应“colormap1”);
});
查询2.发送(函数(响应){
handleQueryResponseTR(响应“colormap2”);
});
查询3.发送(函数(响应){
handleQueryResponseTR(响应“colormap3”);
});
}
威伊
全部的
非洲
中美洲
南美洲
欧洲
亚洲/中东
电池组