gpt4 book ai didi

javascript - 如果使用相同的数据,在 JavaScript 中声明多个变量?

转载 作者:行者123 更新时间:2023-11-28 16:09:33 24 4
gpt4 key购买 nike

我看过类似 Declaring Multiple Variables in JavaScript 的帖子专注于独特的变量(以及很多),但我正在研究很多非独特的变量,例如我想做一个更大的版本......

            var rep;
var state_def, state_MA, state_WY, state_TN = 'joeblow';
var state_AZ, state_TX = 'moefoe';
var state_MT, state_OR = 'growmo';
var state_OK, state_LA = 'billyjoe';
var state_WA, state_NM, state_MS = 'messytess';
var state_VA, state_NY = 'slickrick';
var state_CA = 'icecube';

//or
var state_def = state_MA = state_WY = state_TN = 'joeblow';

只是为了理解,我正在使用这样的开关......

switch (capitalise(data.regionName)) {
case 'Arizona': rep = state_AZ; break;
case 'Texas': rep = state_TX; break;
case 'Montana': rep = state_MT; break;
case 'Oregon': rep = state_OR; break;
case 'New Mexico': rep = state_NM; break;
case 'Mississippi': rep = state_MS; break;
case 'Oklahoma': rep = state_OK; break;
case 'Louisiana': rep = state_LA; break;
case 'Washington': rep = state_WA; break;
case 'Massachusetts': rep = state_MA; break;
case 'Wyoming': rep = state_WY; break;
case 'Tennessee': rep = state_TN; break;
case 'Virginia': rep = state_VA; break;
case 'Illinois': rep = state_IL; break;
case 'Nevada': rep = state_NV; break;
default: rep = state_def; break;
};

这也将有数千个邮政编码,因此需要一个辅助开关。这就是为什么需要声明尽可能短的状态(或 zip)变量/用户关联。但我也不想陷入任何我可能不知道的陷阱。现在,除了 default: rep = state_def; break; 之外,这一切都有效。返回为未定义。另外,在 IE8 中不起作用。

最佳答案

我建议用映射替换您的switch:

var reps = {
'Arizona': state_AZ,
'Texas': state_TX,
// etc.
};

// then you can do this:
var rep = reps[capitalize(data.regionName)];

稍后,您甚至可以从服务器或其他数据源以 JSON 对象或其他内容的形式下载该映射(包括值)。

另请注意,大多数 state_* 变量均未定义。我不知道这是否是你的意图。如果您只有某些状态的数据,那么直接构建数据结构可能会更好:

var reps = {
'Arizona': undefined, // or just omit from mapping
'Texas': 'moefoe',
// etc.
};

并省去所有state_*变量。

关于javascript - 如果使用相同的数据,在 JavaScript 中声明多个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13479719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com