【发布时间】:2013-04-25 03:24:16
【问题描述】:
我叫迈克,我的问题有两个:
- 如何访问数组中的对象,以便它们正确显示在我的
question提示符中,以及 - 如何在
if/else语句中访问随机选择对象的属性?
我正在尝试制作一个简单的抽认卡程序来帮助我记住不同种类的音响设备。设备列表很大,但我只包括三种不同的设备以使这个示例保持简单。我希望每个对象都有两个属性:answer 和 desc。第一部分定义了三个对象,将它们放置在一个数组中,创建一个用于随机选择其中一个数组项的变量,以及另一个用于提示用户输入answer 的变量:
var newFlash = function() {
var A827 = {
answer: "T",
desc: "Multitrack Tape Recorder"
};
var LA2A = {
answer: "O",
desc: "Classic Leveling Amplifier"
};
var SonyC800G = {
answer: "M",
desc: "Tube Condenser Microphone"
};
var list = [A827, LA2A, SonyC800G];
var rand = Math.floor(Math.random() * list.length);
var question = prompt("What kind of equipment is " + list[rand] + "?");
};
现在,如果我将数组中的三个项目全部设为字符串,它们在question 提示中显示没有问题,正确地将list[rand] 替换为适当的数组项目。但是,在我的数组中使用对象时,我的提示是"What kind of equipment is [object Object]?。
我的最终目标是让用户输入适当的一或两个字母的响应(M 代表麦克风,C 代表控制台,O 代表 Outboard Gear,T 代表磁带机,S 代表软件,CH 代表计算机硬件)在输入成功的字母时会产生一个警报,显示对象的answer 和desc。我的 n00b 直觉告诉我,第二部分应该是 if/else 形式的声明
if (question == list[rand.answer]) {
alert("Correct, Answer: " + list[rand.answer] + ", a " + list[rand.desc] + "!");
}
else {
alert("Wrong, try again.");
}
但我很确定这不是访问这些对象属性的正确方法。
所以,我的问题有两个部分:
- 如何访问数组中的对象,以便它们正确显示在我的
question提示符中,以及 - 如何在
if/else语句中访问随机选择对象的属性?
我确信某些逻辑正在逃避我。谢谢阅读。
【问题讨论】:
标签: javascript arrays object properties key-value