我有一系列项目,我正在尝试根据每个数组的项目名称分配一个变量名称。例如,如果数组具有值:
var thearray = {};
thearray['0'] = 'car';
thearray['1'] = 'boat';
thearray['2'] = 'truck';
我想最终得到三个变量,名为car_output, boat_output, truck_output
。
它们都包含相同的数据。以下是我尝试这样做的方法:
$.each(thearray, function(index, value) {
var value+'_output' = 'stuff...'; // something not right
});
我试图命名每个变量的方式不对。有什么想法吗?
答案 0 :(得分:1)
这应该可以解决问题。秘诀是像数组一样使用全局window
对象,以便创建动态变量名。
var thearray = {};
thearray['0'] = 'car';
thearray['1'] = 'boat';
thearray['2'] = 'truck';
$.each(thearray, function(index, value) {
window[value+'_output'] = 'stuff...';
});
console.log(car_output); // "stuff..."
答案 1 :(得分:0)
你可以使用数组,
var user_types = ["car","boat","truck"];
var types = {};
$.each(user_types, function( index, value ){
types[value+"_output"] = 'The value of dynamic variable, val';
});
console.log(types);
我希望这可以帮到你..
答案 2 :(得分:0)
尝试动态创建object
以存储相关值,请不要使用window object
来存储值,因为它是笨拙方式。
var thearray = {};
thearray['0'] = 'car';
thearray['1'] = 'boat';
thearray['2'] = 'truck';
var obj={};
$.each(thearray, function (index, value) {
obj[value+"_output"]="stuff";
});
答案 3 :(得分:0)
我认为这就是你想要的。它按你的意愿工作。
var user_types = ["car","boat","truck"];
var types = {};
$.each(user_types, function( index, value ){
types[value+'_Output'] = value;
});
console.log(types);
请参阅jsfiddle链接http://jsfiddle.net/C23U8/1/