Javascript检查图像是否在数组中
Javascript checking if image is in the array
我一直在尝试简化一些代码,我有4个变量可以保存一组图像,最后还有一个名为cards的变量可以保存所有4个变量。
它的另一部分从卡片中生成一个随机图像,并用html更改画布。
现在我要做的,也就是我需要帮助的,是使用if语句来查看生成的图像是否来自4个变量中的任何一个,如果是,我希望它更改一个值,使其明显有效。
关于如何做到这一点,有什么想法吗?
HTML
<button class="open" onclick="pack100()">Open £250 Cards.</button>
<div class=card-group>
<img class="card" src="http://tacticalcards.esy.es/images/blank.png" id="cp1" />
<p>Worth: £<span id="w1">0</span></p>
</div>
JAVASCRIPT
var bronze = new Array("http://tacticalcards.esy.es/images/a.k.a.bronze.jpg");
var silver = new Array("http://tacticalcards.esy.es/images/ssgsilver.jpg");
var gold = new Array("http://tacticalcards.esy.es/images/a.w.p.gold.jpg");
var legends = new Array("http://tacticalcards.esy.es/images/karambitee.jpg");
var cards = new Array(bronze, silver, gold, legends);
var cash = document.getElementById("cash").innerHTML;
function pack100(){
if (Number(cash) >= 250){
var profit = 0;
cash = cash - 250;
var c1 = Math.floor(Math.random() * cards.length);
document.getElementById("cp1").src = cards[c1];
var cp1 = document.getElementById('cp1').src;
if (cp1 == gold){
profit += 50;
document.getElementById("w1").innerHTML = 500000000000000000000;
document.getElementById("profit").innerHTML = 500000000000000;
};
我不明白,它工作正常。请小心关闭if语句和函数,但它可以正常工作。为了清楚地表明它已经改变了,您可以放置alert("your message")
。
有一点是,与其使用1个元素的数组,不如使用字符串,这更符合标准。
我用这个写了一个HTML页面,它很有效,我只是更改了cash变量,因为你没有给我们id = cash
元素。有一些图像的链接已断开,因此它不会显示该图像。这是:
<html>
<header>
</header>
<body>
<button class="open" onclick="pack100()">Open £250 Cards.</button>
<div class=card-group>
<img class="card" src="http://tacticalcards.esy.es/images/blank.png" id="cp1" />
<p>Worth: £<span id="w1">0</span></p>
</div>
<script>
var bronze = "http://tacticalcards.esy.es/images/a.k.a.bronze.jpg";
var silver = "http://tacticalcards.esy.es/images/ssgsilver.jpg";
var gold = "http://tacticalcards.esy.es/images/a.w.p.gold.jpg";
var legends = "http://tacticalcards.esy.es/images/karambitee.jpg";
var cards = new Array(bronze, silver, gold, legends);
var cash = 350;
function pack100(){
alert("works");
if (Number(cash) >= 250){
var profit = 0;
cash = cash - 250;
var c1 = Math.floor(Math.random() * cards.length);
document.getElementById("cp1").src = cards[c1];
var cp1 = document.getElementById('cp1').src;
if (cp1 == gold){
alert("gold");
profit += 50;
document.getElementById("w1").innerHTML = 500000000000000000000;
document.getElementById("profit").innerHTML = 500000000000000;
}
}
};
</script>
</body>
</html>
在cards
数组中有4种"卡类型"。如果我答对了你的问题,你正在使用随机索引选择一个随机类型:
var c1 = Math.floor(Math.random() * cards.length);
c1
现在包含一个数字(在您的示例中,是一个介于0和3之间的数字)。要检查与此数字对应的类型,不能执行:
if (c1 == gold) { /* ... */ }
这将number
与array
进行比较。相反,你必须做:
if (cards[c1] === gold) { /* ... */ }
这将检查索引c1
处cards
内的array
是否与gold
数组的相同。
相关文章:
- 查找对象数组是否包含其中一个标记的最快方法
- 检查数组是否包含
- 确定数组是否包含偶数
- 在 JavaScript 中连接字符串或数组是否更快
- 检查对象数组是否具有所有必需的键
- 检查数组是否包含指定的对象
- 在通过套接字发送到客户端之前压缩中等大小的javascript数组是否值得
- 检查数组是否有空元素
- 检查输入框的数组是否为空
- 如何检查JSON数组是否等于
- 检查数组是否已定义并且具有长度
- 检查数组是否包含特定对象
- 什么'最合适的数据结构是什么?(使用一个有间隙的数组是否存在缺点或注意事项?)
- 如何检查子集数组是否包含超集数组之一
- 检查对象数组是否包含布尔值true/false
- 检查数组是否在MongoDB文档中包含帖子ID
- 检查数组是否包含允许或不允许的字符
- 检查 javascript 数组是否不仅包含空值
- 在循环时修改数组是否安全
- 列表/数组是否有效 JSON