[英]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.