从外部循环访问变量

时间:2017-11-18 14:38:00

标签: javascript jquery loops variables

我知道这是基本的JS,但我想要一个简单的解释。根据我的阅读,如果我在循环之外声明一个空变量,循环中的变量应该是全局可访问的吗?或者我完全错了?

我想从randAd循环外部访问for

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

3 个答案:

答案 0 :(得分:4)

如果要访问randAd循环之外的for的每个元素,请尝试使用此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);

答案 1 :(得分:3)

你是在思考。你在获得0和数组长度之间的随机数时已经做了很多努力。所以,只需在该索引处获取ad

var randAd = mobileAds[randNum];

根本不需要使用for循环。

答案 2 :(得分:2)

如果您想使用randAd,则应将其初始化为空数组[],然后从循环randAd.push()内推入该数组。像这样:

var randAd=[];

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