我知道这是基本的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]);
}
答案 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]);
}