Arrays 检查字符串是否是元组数组的一部分-Swift

Arrays 检查字符串是否是元组数组的一部分-Swift,arrays,swift,tuples,elements,Arrays,Swift,Tuples,Elements,我试图找出如何检查传递给函数的字符串是否可以在元组作为元素组成的数组中找到。下面是我的代码。我不知道如何最好地解决这个问题 typealias myTuple = (input: String, magnitude: Int) var userInput = "Happy" var wordOneArray: [myTuple] = [] var magnitudeCount = 1 var userInputTup

我试图找出如何检查传递给函数的字符串是否可以在元组作为元素组成的数组中找到。下面是我的代码。我不知道如何最好地解决这个问题

typealias myTuple = (input: String, magnitude: Int)    

var userInput = "Happy"                               

var wordOneArray: [myTuple] = [] 

var magnitudeCount = 1

var userInputTuple: myTuple = (userInput, magnitudeCount)


magnitudeCount += magnitudeCound

func addUserInput(tempArray: myTuple) {    

    if wordOneArray.contains(userInput) {

        userInputTuple = (userInput, magnitudeCount += magnitudeCount)

    }

    wordOneArray.append(userInputTuple)

    print(wordOneArray)


}

addUserInput(tempArray: userInputTuple)

userInput = "Sad"

userInputTuple = (userInput, magnitudeCount)

addUserInput(tempArray: userInputTuple)

首先,您的代码无法编译:/


在任何情况下,您都可以使用wordOneArray.containswhere:{$0.0==userInput}来确定元组是否包含字符串。

您期望的输出是什么?您得到了哪些错误,在哪些行上?我在调用中的if语句行缺少参数标签“where:”时得到了一个错误。我还在下一行中得到一个错误,它说“+=”生成的是预期的上下文结果类型“Int”。我不知道为什么在第二天。第一个错误修复对我来说没有意义。请用这些信息回答您的问题。第一个错误的原因是您不能直接询问元组数组是否包含字符串–您必须使用自定义谓词,因此编译器建议containswhere:。第二个错误的原因是+=返回Void。您需要将其从元组分配中移出,只需分配magnityCount即可–例如,请参见“谢谢”。这会在数组的所有元组中搜索该特定字符串吗?或者只是第一个?它将在整个数组中循环,直到找到一个具有匹配字符串的元组,如果找到,则返回true,如果没有找到,则返回false。好的。这很有效。最后一点是,我试图增加它找到的给定元组元素的数量。我已经修改了代码,但它没有给出正确的输出。。另外,Stackoverflow不允许我在这里粘贴代码,它说它太长了,不能发表评论。如果找到匹配项,你知道如何增加magnitudeCount吗?当然,在将其传递到元组之前,只需在一行上增加:magnitudeCount+=magnitudeCount UserInputUple=userInput,MagnitudeCounta好的,我明白你的意思,但是函数首先必须检查userInput是否在数组中,如果在数组中,然后该特定字符串的数量级计数递增。所以我可能有一些问题,因为magnizeCount还没有绑定到特定的字符串。