我正在做一些codechool的javascript练习,这部分让我感到莫名其妙。 在功能dontPanic,我不明白这是怎么回事就在这个声明我不明白这个JavaScript对象发生了什么
location.weaponBulbs[location["ranger"+i].station-1][0].
基本上,它说:station-1
部分的结束。我不知道为什么它会从站对象中减去1。在站1之后我也不理解[0]。哪个对象或数组是[0]指的?
我的猜测是站1后的[0]。是为车站分配的号码,但我真的需要一些澄清。如果不理解这一点,我不想继续这一课。我在上面提出了一条评论,我需要帮助理解。
var superBlinders = [ ["Firestorm", 4000], ["Solar Death Ray", 6000], ["Supernova", 12000] ];
var lighthouseRock = {
gateClosed: true,
weaponBulbs: superBlinders,
capacity: 30,
secretPassageTo: "Underwater Outpost",
numRangers: 3,
ranger1: {name: "Nick Walsh", skillz: "magnification burn", station: 2},
ranger2: {name: "Drew Barontini", skillz: "uppercut launch", station: 3},
ranger3: {name: "Christine Wong", skillz: "bomb defusing", station: 1}
};
function dontPanic (location){
var list = "";
for(var i = 1; i<=location.numRangers; i++){
//this is what I don't understand
list = list + location["ranger" + i].name + ", man the " +
location.weaponBulbs[location["ranger"+i].station-1][0] +
"!\n";
}
alert("Avast, me hearties!\n" +
"There be Pirates nearby! Stations!\n" + list);
}
dontPanic(lighthouseRock);
它实际上是'location.weaponBulbs [((location [(“ranger”+ i)] .station) - 1)] [0]' – aggelgian
'station'是一个索引,但是数组是零索引的。从站号到数组元素时,必须减去一个。至于'[0]','weaponBulbs'是一个数组数组。 – Blender