我无法从数组中获取img,我有一个包含6个变量的数组应该是图像的路径,但最后的console.log
只给我一个随机变量,如sk11,sk15。 ....但它们并不等于图像的路径。
.controller('ArCtrl', function($scope) {
var sk11,sk12,sk13,sk14,sk15,sk16;
var kockice = ['sk11', 'sk12', 'sk13', 'sk14', 'sk15', 'sk16'];
var rank = kockice[Math.floor(Math.random() * kockice.length)];
//working good, finds random varibale in array
if(rank === sk11) {
sk11 = "http://localhost:8100/img/1.jpg";
rank = sk11;
} else if(rank === sk12) {
sk12 = "http://localhost:8100/img/2.jpg";
rank=sk12;
} else if(rank === sk13) {
sk13 = "http://localhost:8100/img/3.jpg";
rank=sk13;
}else if(rank === sk14) {
sk14 = "http://localhost:8100/img/4.jpg";
rank=sk14;
}else if(rank === sk15) {
sk15 = "http://localhost:8100/img/5.jpg";
rank=sk15;
} else if(rank === sk16){
sk16 = "http://localhost:8100/img/6.jpg";
rank=sk16;
};
console.log(rank); //gets back random from arry kockice
console.log(sk11); //shows undefined?why
答案 0 :(得分:2)
假设您尝试将随机图像路径分配给rank
变量,您应该做更多类似的事情:
var images = [ '1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg' ];
var randomImage = images[Math.floor(Math.random() * images.length)];
var rank = 'http://localhost:8100/img/' + randomImage;
无需拥有所有这些if
语句。甚至更多 - 拥有它们效率不高,因为如果在阵列中获得更多图像,则必须添加更多它们。
答案 1 :(得分:0)
编辑:虽然我的答案解决了您的具体问题,但@ tdragon的解决方案可能是更好的方法。
正如@Parth Trivedi在评论中所说,你需要在你的变量周围加上引号。
喜欢这样:if(rank === 'sk11')
,if(rank === 'sk12')
等。
这是因为您目前正在检查rank
是否等于变量sk11
。 sk11
在任何地方都没有给出值。
您需要检查rank
是否等于字符串'sk11'
。
但是,如果console.log
等于rank
,您的'sk11'
只会返回一些内容。否则,它仍然是未定义的。