javascript - 通过使用循环构建矩阵的问题

标签 javascript

这是我的代码:

var shuffle = function() {
    var set = [];
    var waiter = [];
    var suitset = ["Hearts","Clubs","Diamonds","Spades"];
    for (var r = 1;r <= 13;r++) {
        for (var s = 0;s < suitset.length;s++) {
            card = [];
            var cardeval = evalcard(r); //This is an input from another function
            card.push(cardeval[0]);
            card.push(suitset[s]);
            card.push(cardeval[1]);
            waiter.push(card);
        }
    }
    while (waiter.length) { //This is what randomizes the deck aka shuffles
        set.push(waiter.splice(Math.random() * waiter.length,1));
    }

    return set;
};

我正在尝试构建一个卡片矩阵(我在这里使用矩阵作为数组的数组)。将有 52 个卡牌数组,每个卡牌数组包含一个卡号、花色和数值。但在我调用该函数后,card 作为字符串而不是数组返回,即使它是用数组括号 [] 定义的。谁能看到我在这里做错了什么吗?

最佳答案

<强> Live Demo

function evalcard() { return [1,2]}

    var shuffle = function() {
        var set = [];
        var waiter = [];
        var suitset = ["Hearts","Clubs","Diamonds","Spades"];

        for (var r = 1;r <= 13;r++) {
            for (var s = 0;s < suitset.length;s++) {
                var card = {},
                    cardeval = evalcard(r); 

                card.num = cardeval[0];
                card.suite = suitset[s];
                card.val = cardeval[1];

                waiter.push(card);
            }
        }

        while (waiter.length) { //This is what randomizes the deck aka shuffles
            var randomNum = Math.floor(Math.random() * (waiter.length-1));
            set.push(waiter[randomNum]);
            waiter.splice(randomNum ,1)
        }
        return set;
    };

    var test = shuffle();
    console.log(test);
    alert(test[0].suite);

将卡片制作成对象,然后将它们传递到数组中,只是为了更容易访问。

关于javascript - 通过使用循环构建矩阵的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7030195/

相关文章:

javascript - Azure 移动服务中的 CORS 设置去哪里了

javascript - 在由 addEventListener 管理的点击事件中使用 THIS

javascript - querySelectorAll 和 getElementsBy* 方法返回什么?

javascript - 使用 PhpStorm 调试在 JavaScript 中调用的 Laravel 函数

java - 使用 spring mvc 从子 jsp 中选择值到父级

javascript - Angular(使用 Firebase)应用程序部署到 Firebase 问题

javascript - 解析 json 数据失败 - jquery

javascript - 在您的生产 JavaScript 代码中保留 "console.log()"调用是个坏主意吗?

javascript - 从文件 ://with no sever 运行 Svelte 应用程序

javascript - 设置 HTMLCanvasElement.toBlob 回调和 URL.createObjectURL 的类型