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