func lunhCheck(number : String) -> Bool{ var odd = true; return reverse(number).map { String(let numbers = [7,8,9,10]let indexAndNum: [String] = numbers.enumerate().map { (index,element) in return "\(index): \(element)"}print(indexAndNum)// ["0: 7","1: 8","2: 9","3: 10"]).toInt()! }.reduce(0) { odd = !odd returnenumerate
+ (odd ? ( == 9 ? 9 : ( * 2) % 9) : ) } % 10 == 0}lunhCheck("49927398716")lunhCheck("49927398717")
我想摆脱奇变量above。
您可以使用枚举将序列(Array,String等)转换为具有整数计数器和元素配对在一起的元组序列。那是:let actualindexAndNum: [String] = zip(numbers.indices,numbers).map { "\(let summedProducts = numbers.enumerate().reduce(0) { (accumulate,current) in return accumulate + current.0 * current.1 // ^ ^ // index element}print(summedProducts) // 56): \()" }print(actualindexAndNum)// ["0: 7","3: 10"]
Link to definition
注意,这不同于获取集合枚举的索引返回一个整数计数器。这与数组的索引相同,但是对字符串或字典将不是非常有用。要获取实际的索引以及每个元素,您可以使用zip:
当使用带有reduce的枚举序列时,您将无法分离元组中的索引和元素,因为您在方法签名中已经有accumulating / current元组。相反,你需要在你的reduce闭包的第二个参数上使用.0和.1:
总结以上是内存溢出为你收集整理的在Swift中使用索引映射或减少全部内容,希望文章能够帮你解决在Swift中使用索引映射或减少所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)