在Javascript中初始化多个变量的优雅方式

时间:2016-10-11 10:21:16

标签: javascript optimization initialization

我有一个函数来根据用户选择的元素类型设置多个元素的可见性。

  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,
     ...
    };
}

但我的问题是,是否有更好的方法来初始化多个值?

1 个答案:

答案 0 :(得分:2)

您可以使用数组对象来配置要显示的元素

var cases = {
    A: [1, 2, 3],
    // ...
};

然后遍历案例数组以将值设置为true

for (var i in cases[type]) {
    ctrl.show[cases[type][i]] = true;
}