【问题标题】:How to convert array object to arguments in javascript如何将数组对象转换为javascript中的参数
【发布时间】:2014-11-06 10:51:41
【问题描述】:

我有这样的课:

Enum = function() {
    for (var i = 0, len = arguments.length; i < len; i++) {
        var k= arguments[i];
        this[k] = i;
    }
    Object.freeze(this);
};

要创建一个字符串枚举,通常我只需调用: var options = new Enum("EAT","DRINK","SLEEP"); // 很多参数

如果我已经有一个存储在变量中的参数数组。 Ex: var arg_array = ["EAT","DRINK","SLEEP"], 我怎么能把它传递给 new Enum(...)

【问题讨论】:

    标签: javascript arrays arguments


    【解决方案1】:

    使用Function.prototype.apply:

    var a = {};
    Enum.apply(a, ["EAT","DRINK","SLEEP"]);
    

    会给你:

    {
      "EAT": 0,
      "DRINK": 1,
      "SLEEP": 2
    }
    

    【讨论】:

      【解决方案2】:

      您可以将一个数组作为构造函数的参数,并像您一样将它与参数数组一起使用:

      Enum = function(arr) {
          if(arr){
              for (var i = 0, len = arr.length; i < len; i++) {
                  var k= arr[i];
                  this[k] = i;
              }
          }
          Object.freeze(this);
      };
      

      然后在创建枚举时交出数组:

      var options = new Enum(arg_array);
      

      【讨论】:

        猜你喜欢
        • 2010-10-31
        • 2015-11-18
        • 1970-01-01
        • 2015-01-13
        • 2011-04-21
        • 2022-01-01
        • 1970-01-01
        • 2019-10-22
        相关资源
        最近更新 更多