gpt4 book ai didi

javascript - 检查并比较 2 个数组

转载 作者:行者123 更新时间:2023-11-30 14:47:07 24 4
gpt4 key购买 nike

function calWinner(arr) {
//winning combination
const winningIds = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6],
]

for (let i = 0; i < winningIds.length; i++) {
calculate(arr, winningIds[i])
}
}

function calculate(sup, sub) {
sup.sort()
sub.sort()
let i = 0
let j = 0
for (i, j; i < sup.length && j < sub.length;) {
if (sup[i] < sub[j]) {
++i
} else if (sup[i] == sub[j]) {
++i, ++j
} else {
return false
}
}
return j == sub.length;
}


calWinner([1, 3, 7, 4])

我正在尝试编写一个接受数组的函数,并检查它是否在函数内部的对象中的嵌套数组中具有 每个 元素。

我添加了一个从这个 post 中找到的函数,但不确定为什么我得到的是 undefined 而不是 true。

最佳答案

假设如果来自 winningIds 的任何数组在 arr 中,你想返回 true,这是代码:

function calWinner(arr) {
//winning combination
const winningIds = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6],
]

var containsWinner = false;

for (let i = 0; i < winningIds.length && !containsWinner; i++) {
containsWinner = calculate(arr, winningIds[i])
}

return containsWinner;
}

function calculate(sup, sub) {
sup.sort()
sub.sort()

for (var i = 0; i < sub.length; i++) {
if (sup.indexOf(sub[i]) == -1) {
return false;
}
}
return true;
}

calWinner([1, 3, 7, 4]);

关于javascript - 检查并比较 2 个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48739509/

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