2013-02-21 70 views
0

我看过以前的问题,但它们是整数值,我需要一个文本值的答案。将字符串转换为变量名称。 (JavaScript)

我在本周早些时候提出了一个与此相关的问题,但是这里有。 如下所示,我使Make [x]等于一些字符串值(Acura,Honda,Toyota)。当我将Make [x]传递给Models(Make)函数时,如何将该字符串变为变量名,变量Acura,Honda和Toyota在Models(Make)函数中?

function Models(Make){ 
var Acura=['RSX','NSX','Integra',]; 
var Honda=['Accord','Civic','Prelude',]; 
var Toyota=['MR2','Celica','Camry',]; 
var holder = Make; 
var Model = holder[Math.floor(Math.random()*holder.length)]; 
return Model; 
} 

function main(){ 
var Makes=['Acura','Honda','Toyota',]; 
var Make = Makes[Math.floor(Math.random() * Makes.length)]; 
var Model = Models(Make); 
var Out = Make + " " + Model; 
return Out; 
} 

document.write(main()); 

如果运行,您将获得制作的名字,而是一个模型,它吐出来,从模型的名称的字母来代替之作。

+0

我想你会在错误的道路这个。一个对象似乎是你需要的。 'var cars = {acura:[],honda:[],...}' – elclanrs 2013-02-21 05:38:55

回答

2

你不能做你与你有什么问目前什么,但它会更有意义反正创建模型的对象

function Models(Make) { 
    var Models = {"Acura": ['RSX','NSX','Integra'] /* snip */}; 
    return Models[Make][random()]; 
} 
+0

我担心,但你为什么要返回Make作为模型的索引? Make在这个时候是一个字符串,你不需要一个整数索引吗? – 2013-02-21 05:40:42

+0

@GarrettMichaelGritz如果它是一个对象,则不会。只有数组需要被整数索引;对象可以字符串索引(好吧,技术上他们*有*) – 2013-02-21 05:42:18

+0

谢谢。更多地了解对象。 – 2013-02-21 05:45:01