2017-06-05 26 views
1

myData是一個結構數組。我想創建一個新的數組省略結構元件第二位置如何在Swift中使用過濾器時處理元素位置

var newData = myData.filter{$0 != 1 } // doesn't work 
+1

看一看[如何從迅速陣列多個項目?(https://stackoverflow.com/questions/38002345/how-to-remove-multiple-items-from-a-swift - 陣列)。 –

回答

1

如果你想刪除只是第二個對象,那麼而不是過濾器,你可以嘗試這樣。

var newData = myData 
newData.remove(at: 1) 

如果你仍然想回答filter那麼你可以這樣做。

var positionThatNeedToRemove = [1, 4, 7] 
var newData = myData.enumerated().filter { !positionThatNeedToRemove.contains($0.offset) }.map { $0.element } 
+0

@Sean歡迎隊友:) –

+0

是有辦法做到這一點的時候'positionThatNeedToRemove'是一個整數數組?這是因爲我需要將'.filter'鏈接到'.map',我不知道我是否可以用'.remove'來做到這一點?猜猜我應該嘗試。只是想盡可能保持簡潔。 – Sean

+0

如果是一些整數,那麼這簡直就是'無功newData = myData.enumerated(){過濾positionThatNeedToRemove!= $ 0.offset} {.MAP $ 0.element}'此外,它會更好,如果你告訴我們,你真正想要什麼實現這一點會給我們更多的想法 –

相關問題