2016-12-21 22 views
7

Remove Object From Array Swift 3Di chuyển đối tượng cụ thể từ các mảng trong nhanh chóng 3

Tôi có một vấn đề cố gắng loại bỏ một đối tượng cụ thể từ một mảng trong Swift 3. Tôi muốn xóa mục từ một mảng như trong ảnh chụp màn hình nhưng tôi không biết giải pháp.

Nếu bạn có bất kỳ giải pháp nào, vui lòng chia sẻ với tôi.

+0

Hãy gửi mã thực tế trong câu hỏi của bạn, không phải là một hình ảnh . – rmaddy

+0

bạn cần xác định tại đó chỉ mục đối tượng là. –

+1

Vui lòng đọc tài liệu về 'Mảng'. Nó cho thấy các ví dụ về việc thêm và loại bỏ các đối tượng vào/từ một mảng. – rmaddy

Trả lời

10

bạn có thể tìm thấy chỉ mục của đối tượng trong mảng rồi xóa chỉ mục đó bằng chỉ mục.

var array = [1, 2, 3, 4, 5, 6, 7] 
var itemToRemove = 4 
if let index = array.index(of: itemToRemove) { 
    array.remove(at: index) 
} 
+1

Tại sao phải bận tâm với 'array.contains'? Chỉ cần lấy chỉ mục. – rmaddy

+0

chỉ để chắc chắn: D nhưng có bạn có thể loại bỏ array.contains và chỉ sử dụng nếu cho index = array.index (của: itemToRemove) – Mohammadalijf

+0

@Mohammadalijf Bạn không cần 'array.contains (itemToRemove)' chỉ 'nếu cho index = array.index (của: itemToRemove) 'là đủ –

6

Theo mã của bạn, cải thiện có thể là như thế này:

if let index = arrPickerData.index(where: { $0.tag == pickerViewTag }) { 
     arrPickerData.remove(at: index) 
     //continue do: arrPickerData.append(...) 
    } 

Chỉ số phương tiện mảng hiện có chứa các đối tượng có Thẻ đó.

+0

Có !!!, Đó là ... Cảm ơn bạn. nó hoạt động ngay bây giờ .. – Socheat

+0

@Socheat, , bạn càng sử dụng Swift, bạn càng cảm thấy nó mạnh mẽ! –

+0

Vâng, tôi nghĩ vậy. – Socheat

1

tôi đã sử dụng các giải pháp cung cấp ở đây: Remove Specific Array Element, Equal to String - Swift Ask Question

này là một trong những giải pháp đó (trong trường hợp đối tượng là một string):

myArrayOfStrings = ["Hello","Playground","World"] 
myArrayOfStrings = myArrayOfStrings.filter{$0 != "Hello"} 
print(myArrayOfStrings) // "[Playground, World]" 
Các vấn đề liên quan