如何将数组值转换为变量

时间:2015-09-14 13:01:55

标签: javascript variables dynamic-variables

我有一个像这样的数组:

multi_arr = ["resi_spec","resi_desc"];

因此每个数组值都被视为一个变量,我想动态地存储这些变量的一些值,如下所示:

resi_spec = "good morning"
resi_desc = "good evening";

这样就可以将数组值转换为变量。这可能吗?

我不想像这样使用obj [resi_spec]并且我使用数组不变量如果我只是输入resi_spec意味着,我会早上好。

4 个答案:

答案 0 :(得分:6)

您可以使用对象来保存值:



var multi_arr = ["resi_spec","resi_desc"];
var resi = {};
multi_arr.forEach(function(val) { 
    resi[val] = "good morning"; 
});




显然,您需要为每个对象属性设置不同的值,您可以使用辅助函数来完成这些值:



var lookupHelper = function(key) {
    if (key == 'resi_spec') return 'good morning';
    if (key == 'resi_desc') return 'good evening';
};
var multi_arr = ["resi_spec","resi_desc"];
var resi = {};
multi_arr.forEach(function(val) { 
    resi[val] = lookupHelper(val); 
});




答案 1 :(得分:4)

最好的方法是拥有像bellow这样的对象

multi_arr = ["resi_spec","resi_desc"];
var obj = {};
obj[multi_arr[0]] = "good morning";
obj[multi_arr[1]] = "good evening";
console.log(obj); //prints Object {resi_spec: "good morning", resi_desc: "good evening"})

您可以访问bellow

等变量
console.log(obj["resi_spec"]); //prints "good morning";
console.log(obj["resi_desc"]); //prints "good evening";

答案 2 :(得分:4)

您也可以执行以下操作..虽然不是真的建议,因为您将创建全局变量。 Jsfiddle

var varNames = ["name1", "name2", "name3"];
for(var i = 0; i < varNames.length; i++){
  window[varNames[i]] = i;
}
console.log(name1); // 0
console.log(name2); // 1
console.log(name3); // 2

答案 3 :(得分:-1)

好的,所以我误解了你的问题,所以这是已编辑的回复。

var multi_arr = ["resi_spec","resi_desc"];

var object = {};

object[multi_arr[0]] = "good morning";
object[multi_arr[1]] = "good evening";

console.log(object);