Javascript检查图像是否在数组中

Javascript checking if image is in the array

本文关键字:数组 是否 检查 图像 Javascript      更新时间:2023-09-26

我一直在尝试简化一些代码,我有4个变量可以保存一组图像,最后还有一个名为cards的变量可以保存所有4个变量。

它的另一部分从卡片中生成一个随机图像,并用html更改画布。

现在我要做的,也就是我需要帮助的,是使用if语句来查看生成的图像是否来自4个变量中的任何一个,如果是,我希望它更改一个值,使其明显有效。

关于如何做到这一点,有什么想法吗?

HTML

<button class="open" onclick="pack100()">Open &#163;250 Cards.</button>
<div class=card-group>
    <img class="card" src="http://tacticalcards.esy.es/images/blank.png" id="cp1" />
    <p>Worth: &#163;<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 &#163;250 Cards.</button>
<div class=card-group>
    <img class="card" src="http://tacticalcards.esy.es/images/blank.png" id="cp1" />
    <p>Worth: &#163;<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) { /* ... */ }

这将numberarray进行比较。相反,你必须做:

if (cards[c1] === gold) { /* ... */ }

这将检查索引c1cards内的array是否与gold数组的相同。