gpt4 book ai didi

javascript - 用 Javascript 在 table 周围传递卡片

转载 作者:行者123 更新时间:2023-12-02 21:41:38 25 4
gpt4 key购买 nike

这似乎是一件非常简单的事情,但我不知道我做错了什么。目标是拥有一个由 8 个其他数组组成的数组,每个数组都包含一手牌(在示例中,数组只包含任意数字)。然后,根据 passDirection 设置为 -1 还是 1,循环遍历每个数组并用其旁边的数组替换。期望的最终结果是,playerList 的值基本上向上或向下移动 1,并且可以重复多次,不会出现问题。

不过,我下面的代码实际发生的情况是,除了第一个数组之外,所有数组都被索引 0 处的数组替换。我该如何解决这个问题?

var playerList = new Array;
var passDirection = -1;

for(i = 0; i < 8; i++) {
playerList.push([playerList.length,i]); // Fill Arrays with arbitrary data
}

for (i=0; i< playerList.length; i++) {
console.log(i + ": " + playerList[i]); // Check their values before anything is done to them
}

for(q=0; q < 5; q++){ // Repeat the process 5 times, just because.

var bufferArray = playerList[0]; // Put Array Element 0's value in a buffer as it will be replaced first

for(i = 0; i < playerList.length && i > (playerList.length * -1); i += passDirection) {
var catcher = i; // 'catcher' should be the array that gets replaced
var passer = catcher - passDirection; // 'passer' should be the one it gets replaced with
if (catcher < 0) {
catcher = catcher + playerList.length;
}
if (passer < 0) {
passer = passer + playerList.length;
} else if (passer >= playerList.length) {
passer = passer - playerList.length;
}

if (passer == 0) {
playerList[catcher] = bufferArray;

} else {
playerList[catcher] = playerList[passer];
}
}

for (i=0; i< playerList.length; i++) {
console.log(i + ": " + playerList[i]);
}
console.log("...");
}

https://jsfiddle.net/3r1Lhwc5

最佳答案

您的代码中有两个错误:

  • if (passer = 0) 正在执行分配。您需要if (passer === 0)

  • passer 索引正在查看值的错误一侧。目前,您首先从 1 获取并放入 0,然后从 0 获取并放入 7(即 -1)。请注意您如何在第二次迭代中移动相同值。您需要将 passer = catcher - passDirection 更改为 passer = catcher + passDirection

请注意,使用 spliceshiftunshiftpoppush 数组方法(在主 playerList 上)。

关于javascript - 用 Javascript 在 table 周围传递卡片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60353250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com