簡體   English   中英

從外部循環訪問變量

[英]access variable from outside loop

我知道這是基本的JS,但我想要一個簡單的解釋。 根據我的閱讀,如果我在循環之外聲明一個空變量,循環中的變量應該是全局可訪問的嗎? 或者我完全錯了?

我想從我的for循環外部訪問randAd

var mobileAds = [
    "mobile/bb.jpg",
    "mobile/eyeko.jpg",
    "mobile/farfetch.jpg",
    "mobile/fsb.jpg"
];

var randNum = (Math.floor(Math.random() * mobileAds.length));
var randAd;

var i;
for (i = 0; i < mobileAds.length; ++i) {
    randAd = (mobileAds[randNum]);
}

如果你想訪問for循環之外的randAd每個元素, randAd試試這個var randAd = []; 將其初始化為數組。 您可以在for循環后輕松訪問它但是如果將其用作簡單變量var randAd; 那么你總是得到最后一個變量(它會被覆蓋)。 因此將其初始化為數組並在輸出之前將每個元素推送到循環內。

 var mobileAds = [ "mobile/bb.jpg", "mobile/eyeko.jpg", "mobile/farfetch.jpg", "mobile/fsb.jpg" ]; var randNum = (Math.floor(Math.random() * mobileAds.length)); var randAd = []; // see the change here var i; for (i = 0; i < mobileAds.length; ++i) { randAd.push(mobileAds[randNum]); // push every element here } console.log(randAd); 

你是在思考。 你在獲得0和數組長度之間的隨機數時已經做了很多努力。 所以,只需在該索引處獲取ad

var randAd = mobileAds[randNum];

根本不需要使用for循環。

如果你想使用randAd,它應該初始化為一個空數組[] ,然后從你的循環randAd.push()內推入該數組。 像這樣:

var randAd=[];

var i;
for (i = 0; i < mobileAds.length; ++i) {
    randAd.push(mobileAds[randNum]);
}

暫無
暫無

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

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