簡體   English   中英

我不了解此javascript對象發生了什么

[英]I'm not understanding what's going on in this javascript object

我正在進行一些代碼學校的javascript練習,而這部分讓我感到困惑。 在函數dontPanic中,我不明白該語句末尾發生的情況

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);

因為數組的索引為0,而location["ranger"+i].station的索引為1。 location.weaponBulbs location.weaponBulbs[1]實際上是數組中的第二個元素,而location.weaponBulbs[10]同樣訪問第11個元素。

通過從整數location['ranger'+i].station減去1,它將正確訪問相關的數組值。

location.weaponBulbs似乎是一個二維數組。

location["ranger"+i].station-1產生一個整數,因此最終結果是

location.weaponBulbs[n][0] ,其中nlocation["ranger"+i].station-1

它正在從superBlinders陣列中選擇武器。

由於護林員編號從1到3開始,並且數組的索引從0到2開始,您需要從護林員編號中減去1才能直接將它們映射到武器。

  1. "ranger"+i產生一個字符串。
  2. location.weaponBulbs是一個數組-因此,位置可能看起來像這樣...

     var location = { "weaponBulbs":superBlinders, /* this is an array again */ 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} ... } 
  3. location["ranger"+i].station在此將成為一個int

  4. 最后,對於每個station ,它都會點亮隨機的weaponBulb強度...

誰我學會了如何用Javascript寫石頭!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM