gpt4 book ai didi

javascript - 在数组中搜索同样不同的数字

转载 作者:行者123 更新时间:2023-11-30 06:19:20 24 4
gpt4 key购买 nike

我在制作 Tic Tac Toe 游戏时遇到了问题。我注意到有可能获胜的情况是当有 3 个数字相同时(例如,“0,1,2”(1-0=1, 2-1=1) 或“0,4,8”(4- 0=4, 8-4=4) 或“1,4,7”(4-1=3, 7-4=3),如果我从“0”开始数的话。数字是框的坐标,从 0 到 8。

不知道如何检查是否有这样的数字。

//html
<div class="container">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>


//js
const BOXES = document.querySelectorAll('.box');
let turn = true;
let opened = [1, 1, 1, 1, 1, 1, 1, 1, 1];
let x = [];
let o = [];

for (let i = 0; i < BOXES.length; i++) {
BOXES[i].addEventListener('click', () => {
if (turn == true && opened[i] == 1) {
BOXES[i].innerHTML = "<p>X</p>";
x.push(i);
x.sort();
}
if (turn == false && opened[i] == 1) {
BOXES[i].innerHTML = "<p>O</p>";
o.push(i);
o.sort();
}
opened[i] = 0;
turn = !turn
})
}

我要将每个 x 坐标粘贴到数组“x”(x.push[i])并将 o 坐标粘贴到“o”数组(o.push[i])但我不知道如何搜索对于数组中同样不同的数字。

最佳答案

您可以创建两个函数,一个用于生成“差异”数组,另一个用于检查所有这些数字是否相同。见下面的代码:

const array = [1, 4, 7];

// Function to get differences
function getDiffs(array) {
let diffs = [];
for(let i=0; i<array.length; i++) {
if(i > 0) {
diffs.push(array[i] - array[i-1]);
}
}
return diffs;
}

// Function to compare those numbers to see if they are the same
function checkSameValue(diffs) {
let item = diffs[0];
for(let i=0; i< diffs.length; i++) {
if(diffs[i] !== item) {
return false;
}
}
return true;
}

希望对您有所帮助!

关于javascript - 在数组中搜索同样不同的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54150546/

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