JavaScript -如何拥有第三个子变量
JavaScript - how to have a third "sub variable"
好了,我忘了链接到列表内部的单个变量的变量列表的名称了,但是看一下:
function Models(Make) {
var cars = {
"Acura": ['Integra', 'NSX', 'RSX', ],
"BMW": ['M3', ],
"Buick": ['Regal', ],
"Cadillac": ['CTS', ],
"Honda": ['Accord', 'Civic', 'CR-Z', 'Prelude', ],
"Mazda": ['3', 'MX-5', 'MX-6', 'RX-7', 'RX-8', ],
"Mini": ['Cooper', ],
"Nissan": ['240SX', '350Z', 'Fairlady', 'GT-R', 's13', 's14', 's15', ],
"Toyota": ['Celica', 'MR2', 'Supra', ],
};
var holder = cars[Make]
var Model = holder[Math.floor(Math.random() * holder.length)];
return Model;
}
function main() {
var Makes = [
'Acura',
'BMW',
'Buick',
'Cadillac',
'Honda',
'Mazda',
'Mini',
'Nissan',
'Toyota',
];
var Make = Makes[Math.floor(Math.random() * Makes.length)];
var Model = Models(Make);
var Out = Make + " " + Model;
return Out;
}
document.write(main());
我想在车辆型号之后添加第三类(如Mini Cooper"S"或Honda Civic"Del Sol"),我怎么做最好?
您的cars
对象包含许多属性,这些属性都是Array
,并且这些Array
被索引,包含String
。
如果您想存储的不仅仅是字符串(模型),那么您必须将其更改为数组或对象:
var cars = {
"Acura": [
{
base: 'Integra'
submodals: ['S', 'Coupe', 'Si']
},
{
base: 'NSX',
submodels: ['A', 'B', 'C']
},
// ...
]
}
我会写一个函数,它可以接受任意深度嵌套的对象作为参数。然后像这样组织:
var cars = {
"Acura": {
"Integra": ['S', 'Coupe', 'Si'],
"NSX": "",
"RSX": ""
},
"BMW": ['M3'],
"Buick": ['Regal'],
"Cadillac": ['CTS'],
"Honda": {
"Accord": "",
"Civic": ["Del Sol"],
"CR-Z": "",
"Prelude": ""
},
"Mazda": ['3', 'MX-5', 'MX-6', 'RX-7', 'RX-8'],
"Mini": {
"Cooper": ["S"]
},
"Nissan": ['240SX', '350Z', 'Fairlady', 'GT-R', 's13', 's14', 's15'],
"Toyota": ['Celica', 'MR2', 'Supra']
};
// (and notice: no trailing commas!)
然后你可以递归地选择一个随机模型:
function main() {
return getRandom(cars).join(" ");
}
function getRandom(o) {
if (o instanceof Array)
return o.slice(~~(Math.random()*o.length), 1); // a random item in an array
// else
var props = Object.keys(o),
r = props[ ~~(Math.random()*props.length) ],
p = o[r];
if (typeof p == "object") {
var res = getRandom(p); // recurse
res.unshift(r);
return res;
} // else
return [ r ]; // an array literal with the random key
}
相关文章:
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 如何使用PHP和JS级联三个下拉列表
- 灯光问题(使用三个.js)
- 在三个.js中创建球体(例如地球)的磁力线
- 如何使用jqueryAJAX从页面中回调多个变量
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- javascript第三个XMLHttpRequest被拒绝.但前两个是允许的
- Javascript:如果有三个变量
- Javascript形式,计算三个相关变量
- 将变量传递给第三个参数的 GSAP TimeLineLite.to() 不起作用
- 如何将这三个变量存储到本地存储中
- 使用java脚本比较三个变量
- 如何对三个不同的变量使用相同的函数
- 如何比较两个变量并设置第三个变量的值
- 在javascript中,比较变量时使用两个等号还是三个等号更好
- 如何查找引用数组的三个变量的重复项
- 我能否创建一个矩阵,它将根据三个输入变量设置两个变量的状态
- 交换时更改img(三个变量)
- 变量赋值 - JavaScript 三个赋值
- 将变量从钛的第一个窗口传递到任何其他(第三个、第五个)窗口