How to remove multiple items from a swift array?

11,446

Solution 1

Given your array

var numbers = [1, 2, 3, 4]

and a Set of indexes you want to remove

let indexesToRemove: Set = [1, 3]

You want to remove the values "2" and "4".

Just write

numbers = numbers
    .enumerated()
    .filter { !indexesToRemove.contains($0.offset) }
    .map { $0.element }

Result

print(numbers) // [1, 3]

Solution 2

It's simple. delete items from the end.

First delete 3 and after that delete 1

Share:
11,446
Raffi
Author by

Raffi

Updated on June 14, 2022

Comments

  • Raffi
    Raffi almost 2 years

    For example i have an array

    var array = [1, 2, 3, 4]
    

    I want to remove item at index 1 then at index 3 "let it be in a for loop".

    But removing the item at index 1 will move the item at index 3 to index 2, thus messing up the second removal.

    Any suggestions ?