Swift: iterate using Index and Element

Swift: iterate using Index and Element

By : user2950099
Date : November 17 2020, 11:52 AM
it helps some times As Airspeed Velocity notes, I assume you mean enumerate here rather than generate. The tool you want, however, is indices to get all the indices of the collection:
code :
func find<C : CollectionType>(domain: C, comparator: (C.Generator.Element) -> Bool) -> C.Index? {
    for index in indices(domain) {
        if comparator(domain[index]) {
            return index
    return nil

Share : facebook icon twitter icon
Index and Iterate over CollectionType in swift

Index and Iterate over CollectionType in swift

By : James Curtin
Date : March 29 2020, 07:55 AM
Any of those help I have code which is basically like this: , You can restrict the method to collections which are indexed by Int:
code :
func arrayHalvesEqual<ByteArray : CollectionType where ByteArray.Index == Int, ByteArray.Generator.Element == UInt8>
    (data:ByteArray) -> Bool { ... }
func arrayHalvesEqual<ByteArray : CollectionType where ByteArray.Index : IntegerType, ByteArray.SubSequence.Generator.Element : Equatable>
    (data:ByteArray) -> Bool {

        let midPoint = (data.indices.endIndex - data.indices.startIndex)/2
        let firstHalf = data[data.indices.startIndex ..< midPoint]
        let secondHalf = data[midPoint ..< data.indices.endIndex]
        return !zip(firstHalf, secondHalf).contains { $0 != $1 }
A correct and idiomatic way to iterate through a collection with index in Swift?

A correct and idiomatic way to iterate through a collection with index in Swift?

By : John
Date : March 29 2020, 07:55 AM
fixed the issue. Will look into that further For any collection the indices property returns a range of the valid indices. To iterate over the indices and the corresponding elements in parallel you can use zip():
code :
for (idx, el) in zip(collection.indices, collection) {
    print(idx, el)
let a = ["a", "b", "c", "d", "e", "f"]
let slice = a[2 ..< 5]

for (idx, el) in zip(slice.indices, slice) {
    print("element at \(idx) is \(el)")
element at 2 is c
element at 3 is d
element at 4 is e
// Swift 2:
extension CollectionType {
    func indexEnumerate() -> AnySequence<(index: Index, element: Generator.Element)> {
        return AnySequence(zip(indices, self))

// Swift 3:
extension Collection {
    func indexEnumerate() -> AnySequence<(Indices.Iterator.Element, Iterator.Element)> {
        return AnySequence(zip(indices, self))
let chars = "az".characters
for (idx, el) in chars.indexEnumerate() {
    print("element at \(idx) is \(el)")
element at 0 is a
element at 1 is 
element at 3 is 
element at 7 is z
Swift 3.0 iterate over String.Index range

Swift 3.0 iterate over String.Index range

By : Justin
Date : March 29 2020, 07:55 AM
Any of those help You can traverse a string by using indices property of the characters property like this:
code :
let letters = "string"
let middle = letters.index(letters.startIndex, offsetBy: letters.characters.count / 2)

for index in letters.characters.indices {

    // to traverse to half the length of string 
    if index == middle { break }  // s, t, r

    print(letters[index])  // s, t, r, i, n, g
let secondChar = letters[1] 
// error: subscript is unavailable, cannot subscript String with an Int
Iterate an array with index in Swift 3

Iterate an array with index in Swift 3

By : Zaman03
Date : March 29 2020, 07:55 AM
this one helps. You forgot to call a.enumerated(), which is what gives you the (index, value) tuples. for value in a is what gives you each element without the index.
Swift: For Loop to iterate through enumerated array by index greater than 1

Swift: For Loop to iterate through enumerated array by index greater than 1

By : babi chan
Date : March 29 2020, 07:55 AM
wish help you to fix your issue Is there a way to use a for-in loop through an array of strings by an index greater than 1 using .enumerated() and stride, in order to keep the index and the value? , You have two ways to get your desired output.
code :
var testArray2: [String] = ["a", "b", "c", "d", "e"]

for index in stride(from: 0, to: testArray2.count, by: 2) {
    print("position \(index) : \(testArray2[index])")
for (index,item) in testArray2.enumerated() where index % 2 == 0 {
    print("position \(index) : \(item)")
Related Posts Related Posts :
  • Update tableView row from AppDelegate Swift 4
  • Assigning return value of a class method to a variable error
  • how to display circular progress in delphi ios apps?
  • I can't figure how to fix this Expected identifier or '('
  • How to Test APIs in Swift 4?
  • Link error /Build/Products/Debug-iphonesimulator file not found
  • working with a very large JSON object in iOS
  • Turn off part of the iPhone Screen
  • Phonegap 3.0 app with facebook login using xCode
  • How to add interstitial admob ads to my ios project
  • adding tapku calendar to ios app
  • Add an alertcontroller in a global swift file?
  • Take square image with Cordova (Phonegap) Camera API?
  • Amazon S3 policy allowing only upload not overwrite
  • How to change the UILabel content by tapping?
  • Adding checkmark to selected table cell also checks another table cell
  • UICollectionView cellForItemAtIndexPath indexPath row is nil
  • Resize and set quality on JPEG image while retaining EXIF in iOS
  • How to push rootviewcontroller in Ios
  • How to add UIBarbuttonItem at centre on UInavigationbar in iOS
  • Would this IOS device test crash be expected
  • PickerView not showing any values
  • How to set root view controller in storyboard animated with navigation controller programmatically
  • Can anyone suggest me the effective way to deal with s3 upload fail because of timezone difference issue?
  • Getting list of files in documents folder
  • Error while using Realm Object as a singleton. Is it a good idea?
  • inserting into SQLite database
  • More nodes than I should
  • Facebook IOS SDK navigate to another controller after login not working
  • Swift Array - use "Contains" of type AnyObject
  • Sidebar menu with indicate navigationbar on iOS
  • Programmatically set size of UIView from Storyboard
  • Navigation bar blink
  • Web services issue on POST method
  • Parse.com error 'Method not allowed when Pinning is enabled.' when I use a PFQueryTableViewController subclass
  • Swift can't send URLRequest at all?
  • No Provisiong profiles with a valid signing identity were found and Failed to locate or generate matching signing assets
  • iOS: how to set httponly flag for NSHTTPCookie
  • How to get the mac address of a beacon in objective-c without knowing its UUID, major and minor values?
  • tableView is not showing data from JSON in swift
  • iTunes reject app for date of birth
  • SWIFT reporting "Extra argument in call" - works in Playground
  • save data depending on passed value in swift
  • webview not showing on full Screen of iphone 6
  • Location Notification's based on Latest iOS Feature
  • Adjusting Height of UITableViewCell
  • How to show five digit unicode in iphone
  • unwind doesn't work
  • Confusion about coordinates, frames & child nodes in SpriteKit on iOS?
  • If Statements not being recognized by Xcode
  • readonly property in RubyMotion
  • 'No available types for source 1' when the app runs on my device(IPhone 6) swift
  • IOS:Remove view when clicked in background
  • Removing "\" from URL in iOS Swift
  • iOS - Send an email automatically (NOT from user's account)
  • The usage of NSNotificationCenter in the relationship of parent and children
  • When do Apple auto-renewable subscriptions renew?
  • Unknown large spacing between x-axis label and base of plot in core-plot
  • How do I change the displayed time format after NSTimer is initiated?
  • Swift JSON breaks when [ ] are used
  • shadow
    Privacy Policy - Terms - Contact Us © ourworld-yourmove.org