首页 > 解决方案 > 在javascript中设置动态变量名

问题描述

我试图让我的代码看起来更漂亮一些,这是一个可能有 16 个参数的函数,并使用这些参数执行大量重复代码。

这是一些示例代码来演示我的问题:

function foo(varList, a, b, c, d, e, f, ...) {
  varList.map(bar => {
    console.log('Result: ' + bar);
  }
}

const vars = ['b', 'd', 'f'];
foo(vars, 0, 1, 2, 3, 4, 5);  

结果是

b, d, f

我实际上是在尝试访问这些变量名中的数据,所以它应该打印:

1, 3, 5

有没有办法动态处理这样的变量?

标签: javascriptarraysvariablesdynamic

解决方案


正如@alfasin 回答的那样,只需使用JavaScript Objects的强大功能。一个对象由键值对组成,其中每个key都是一个字符串,对应的value可以是一个任意的 JavaScript 对象。

对于您的示例代码,您可以简单地编写:

const vars = {'b': 1, 'd': 3, 'f': 5};

要访问某个对象键的值,可以写入vars.bvars['b']访问b1例如)的值。


推荐阅读