将一个数组的元素与其他两个数组的元素进行比较,swift

Compare elements of one array to other two arrays, swift

enter image description here

我想检查我传入的值数组是否匹配或包含字母数组、nums 数组或两者的值。

检查这个的目的是做一个登录验证,我不想用正则表达式的方式来检查,而是想用当前的函数或循环来解决这个问题。

附上的图片是我尝试过的方法。我可能走错方向了

由于 for character in convertedCharaters 选取数组的每个元素,它要么在 alphabets 中,要么在 nums 中,但肯定不会同时在两者中。那是你的代码中的错误。

这里我们定义标志(numFound - 如果有数字则为真,letterFound - 如果有字母则为真)并遍历给定数组的所有元素。

如果元素包含在 alphabets 中,我们设置 result 并设置 letterFound = true。如果 for 循环已经找到 num,标志 numFound 必须是 true。因此我们知道我们找到了两者(字母和数字),所以我们可以立即 return "contains both".

如果元素包含在 nums 中,则使用相同的方法。

var result = ""
var numFound = false
var letterFound = false
for character in convertedCharaters {
  if alphabets.contain(character) {
    result = "contains only letter"
    letterFound = true
    if numFound {
      return = "contains both"
    }
  } else if nums.contains(characters) {
    result = "contains only nums"
    numFound = true
    if letterFound {
      return = "contains both"
    }
  }
}

return result

注意num和letter都找不到的情况!我没有考虑到。