当前位置: 首页 > 面试题库 >

在Swift中一次遍历两个集合

澹台正业
2023-03-14
问题内容

说我有一个数组[1, 2, 3, 4, 5]。如何一次迭代两个?

Iteration 1: (1, 2)
Iteration 2: (3, 4)
Iteration 3: (5, nil)

问题答案:

您可以使用称为stride(to :, by :)的进度循环,每n个元素对元素进行一次迭代:

Xcode 8.3.2•Swift 3.1

let array = Array(1...5)

let pairs = stride(from: 0, to: array.endIndex, by: 2).map {
    (array[$0], $0 < array.index(before: array.endIndex) ? array[$0.advanced(by: 1)] : nil)
}   // [(.0 1, {some 2}), (.0 3, {some 4}), (.0 5, nil)]

print(pairs)  // "[(1, Optional(2)), (3, Optional(4)), (5, nil)]\n"


 类似资料:
  • 问题内容: 我试图将两个数组排列在一起,结果总是不正确。我将向您展示我的代码,获得的结果以及正在寻找的结果。 我想我只是做错了,但不确定其他方法。 我的代码: 结果:(缩短以节省空间) 我正在寻找的结果如下: 问题答案: 问题 嗯,问题当然出在您嵌套的foreach循环上。因为对于数组的每个元素,您都循环遍历整个数组(所以总共有* 次迭代)。 解决方案 为了解决这个问题,您必须一次遍历两个数组。

  • 问题内容: 我想知道是否有这样一种方法来遍历java中每个循环的扩展扩展的多个集合。 所以像这样: 谢谢 问题答案: 您可以使用Guava的:

  • 本文向大家介绍Swift遍历,包括了Swift遍历的使用技巧和注意事项,需要的朋友参考一下 例子            

  • 问题内容: 我对Xcode在《 Swift编程语言指南》中给我进行此实验的答案感到有些困惑: 我知道随着字典的使用,最大的数字被设置为变量。但是,我对为什么Xcode会说要根据每次测试设置5次,1次或3次感到困惑。 查看代码时,我发现应该单独在“ Prime”中将其设置6次(2、3、5、7、11、13)。然后,它应该跳过“斐波那契”中的任何数字,因为这些数字都小于最大数字,该数字当前已从“ Pri

  • 问题内容: 我有两个列表和数字,我想使用相同的指令遍历它们。像这样: 但这感觉多余。我知道我会写,但是要付出一定的时间。 有没有办法做到这一点而又不浪费时间呢? 问题答案: 这可以通过以下方式完成 : 将打印: 根据文档,请执行以下操作: 创建一个迭代器,该迭代器从第一个可迭代对象返回元素,直到耗尽为止,然后继续进行下一个可迭代对象,直到所有可迭代对象都耗尽为止。 如果列表中有列表, 则可用: 产

  • 我有一个简单的枚举,我想迭代一下。为此,我采用了顺序和迭代器协议,如下面的代码所示。顺便说一句,这可以复制/粘贴到Xcode 8中的游乐场。 但是for in循环生成错误消息“Type”节。Type不符合协议“Sequence”。协议一致性在我的扩展中;那么,这个代码有什么问题? 我知道还有其他方法可以做到这一点,但我想知道这种方法有什么问题。 谢谢