我有一个函数来根据用户选择的元素类型设置多个元素的可见性。
function setVisibility(type) {
switch (type) {
case 'A':
ctrl.show.1 = true;
ctrl.show.2 = true;
ctrl.show.3 = true;
...
break;
case 'B':
ctrl.show.1 = true;
ctrl.show.3 = true;
ctrl.show.5 = true;
...
break;
case 'C':
ctrl.show.2 = true;
ctrl.show.4 = true;
ctrl.show.6 = true;
...
break;
case 'D':
...
default:
break;
}
每个案例都有不同的元素,其中一些元素在它们之间共享。我想用一个对象来改变开关,比如:
function setVisibility(type) {
let cases = {
A = initA,
B = initB,
...
};
cases[type]();
}
function initA(){
ctrl.show = {
1 : true,
2 : true,
3 : true,
...
};
}
但我的问题是,是否有更好的方法来初始化多个值?
答案 0 :(得分:2)
您可以使用数组对象来配置要显示的元素
var cases = {
A: [1, 2, 3],
// ...
};
然后遍历案例数组以将值设置为true
for (var i in cases[type]) {
ctrl.show[cases[type][i]] = true;
}