gpt4 book ai didi

arrays - 快速使用过滤器来获取两个数组之间的差异

转载 作者:行者123 更新时间:2023-11-28 15:10:08 25 4
gpt4 key购买 nike

我有以下数组:

var cardsInHand = [1,2,3]

我希望能够有两个数组 cardsInHandcardsOnTablecardsOnTable 只能来自 cardsInHand。例如,如果我打牌 1,则 cardsInHand 将为 [2,3],而 cardsOnTable 将为 [1]。我可以使用过滤器完成此操作,但从 cardsInHand 中删除的值丢失了。反之亦然,如果我卡 1 备份,则 cardsInHand 将是 [1,2,3]cardsOnTable 将是 []

let cardsPlayed = 1

cardsInHand = cardsInHand.filter { $0 != cardsPlayed }

print(cardsInHand)

[2,3]

我怎样才能得到 cardsOnTablecardsPlayedcardsInHand 之间的区别?

如果标题有误导性,我很抱歉,但我不确定如何描述它。我感觉 map、reduce 或 filter 可能是处理此问题的最简单方法。

最佳答案

您可以简单地使用 remove(at:) 函数来实现您的目标,就像这样

let cardsPlayed = 1
if let index = cardsInHand.index(of: cardsPlayed)
{
cardsOnTable += [cardsInHand.remove(at: index)]
}

如果有多张卡片被丢弃,就像您在评论中提到的那样,您可以直接将它们存储到数组 cardsOntable 中并像这样使用

        cardsOnTable += [1,2]
cardsInHand = cardsInHand.filter{!self.cardsOnTable.contains($0)}

关于arrays - 快速使用过滤器来获取两个数组之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47803262/

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