我有一个像这样的数组:
multi_arr = ["resi_spec","resi_desc"];
因此每个数组值都被视为一个变量,我想动态地存储这些变量的一些值,如下所示:
resi_spec = "good morning"
resi_desc = "good evening";
这样就可以将数组值转换为变量。这可能吗?
我不想像这样使用obj [resi_spec]并且我使用数组不变量如果我只是输入resi_spec意味着,我会早上好。
答案 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);