Javascript 使用下拉菜单选择对象并使用重用变量

Javascript 使用下拉菜单选择对象并使用重用变量,javascript,jquery,Javascript,Jquery,我想使用选择下拉菜单来更改代码中其他地方使用的数据集,但我不知道如何进行切换。。。我尝试将var master更改为所选选项的值,但无法使其正常工作 我试图实现的最终结果是能够重用变量“master”,根据选择将不同的数据集插入到图表中 例如,我希望使用所选数据集中的数据更新对“master”的所有引用 HTML 为什么不为数据使用对象 var type; $('select[name="chart-selector"]').change(function(){

我想使用选择下拉菜单来更改代码中其他地方使用的数据集,但我不知道如何进行切换。。。我尝试将var master更改为所选选项的值,但无法使其正常工作

我试图实现的最终结果是能够重用变量“master”,根据选择将不同的数据集插入到图表中

例如,我希望使用所选数据集中的数据更新对“master”的所有引用

HTML


为什么不为数据使用对象

var type;

$('select[name="chart-selector"]').change(function(){             
      type = $(this).val();
      console.log('Data Set:' + data[type].CA);
});     

data = {};
// Pre 2010 //
data.pre2010All = {CA:"88901", AZ:"48420", ID:"53868", NY:"2322"};
data.pre2010Res = {CA:"2", AZ:"4", ID:"5", NY:"6"};
data.pre2010NonRes = {CA:"56", AZ:"34", ID:"45", NY:"36"};
data.pre2010Util = {CA:"16", AZ:"14", ID:"15", NY:"16"};

为什么不为数据使用对象

var type;

$('select[name="chart-selector"]').change(function(){             
      type = $(this).val();
      console.log('Data Set:' + data[type].CA);
});     

data = {};
// Pre 2010 //
data.pre2010All = {CA:"88901", AZ:"48420", ID:"53868", NY:"2322"};
data.pre2010Res = {CA:"2", AZ:"4", ID:"5", NY:"6"};
data.pre2010NonRes = {CA:"56", AZ:"34", ID:"45", NY:"36"};
data.pre2010Util = {CA:"16", AZ:"14", ID:"15", NY:"16"};

如果您希望所有内容都引用主控形状,并且主控形状不变,则无法执行以下操作:

master = $(this).val();
这会导致主机针对不同的值指向不同的内存地址。如果你希望它一直保持不变,那么你会想做一些类似的事情

master.splice(0, master.length).push($(this).val());

这将从数组中删除所有元素,然后将新值推送到数组中。这里的要点是,主控指向的阵列的内存地址永远不会更改。仅数组中的值。

如果您希望所有内容都引用主控形状,并且主控形状不变,则无法执行此操作:

master = $(this).val();
这会导致主机针对不同的值指向不同的内存地址。如果你希望它一直保持不变,那么你会想做一些类似的事情

master.splice(0, master.length).push($(this).val());

这将从数组中删除所有元素,然后将新值推送到数组中。这里的要点是,主控指向的阵列的内存地址永远不会更改。只有数组中的值。

master
只是一个字符串,它不被视为另一个变量的名称。当您认为需要动态变量时,请使用键为名称的对象

const datasets = {
    // Pre 2010 //
    pre2010All: {CA:"88901", AZ:"48420", ID:"53868", NY:"2322"},
    pre2010Res: {CA:"2", AZ:"4", ID:"5", NY:"6"},
    pre2010NonRes: {CA:"56", AZ:"34", ID:"45", NY:"36"},
    pre2010Util: {CA:"16", AZ:"14", ID:"15", NY:"16"},

    // 2010 //
    Y_2010All: {CA:"82901", AZ:"49420", ID:"56868", NY:"2822"},
    Y_2010Res: {CA:"5", AZ:"7", ID:"5", NY:"8"},
    Y_2010NonRes: {CA:"56", AZ:"38", ID:"49", NY:"37"},
    Y_2010Util: {CA:"17", AZ:"17", ID:"15", NY:"18"}
};
那你就可以了

console.log("Dataset:" + datasets[master].CA);

master
只是一个字符串,它不被视为另一个变量的名称。当您认为需要动态变量时,请使用键为名称的对象

const datasets = {
    // Pre 2010 //
    pre2010All: {CA:"88901", AZ:"48420", ID:"53868", NY:"2322"},
    pre2010Res: {CA:"2", AZ:"4", ID:"5", NY:"6"},
    pre2010NonRes: {CA:"56", AZ:"34", ID:"45", NY:"36"},
    pre2010Util: {CA:"16", AZ:"14", ID:"15", NY:"16"},

    // 2010 //
    Y_2010All: {CA:"82901", AZ:"49420", ID:"56868", NY:"2822"},
    Y_2010Res: {CA:"5", AZ:"7", ID:"5", NY:"8"},
    Y_2010NonRes: {CA:"56", AZ:"38", ID:"49", NY:"37"},
    Y_2010Util: {CA:"17", AZ:"17", ID:"15", NY:"18"}
};
那你就可以了

console.log("Dataset:" + datasets[master].CA);