如何在Swift中使用过滤器时处理元素位置
myData是一个结构数组。我想创建一个新的数组省略结构元件在第二位置。如何在Swift中使用过滤器时处理元素位置
var newData = myData.filter{$0 != 1 } // doesn't work
如果你想删除只是第二个对象,那么而不是过滤器,你可以尝试这样。
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 }
@Sean欢迎队友:) –
是有办法做到这一点的时候'positionThatNeedToRemove'是一个整数数组?这是因为我需要将'.filter'链接到'.map',我不知道我是否可以用'.remove'来做到这一点?猜猜我应该尝试。只是想尽可能保持简洁。 – Sean
如果是一些整数,那么这简直就是'无功newData = myData.enumerated(){过滤positionThatNeedToRemove!= $ 0.offset} {.MAP $ 0.element}'此外,它会更好,如果你告诉我们,你真正想要什么实现这一点会给我们更多的想法 –
看一看[如何从迅速阵列多个项目?(https://stackoverflow.com/questions/38002345/how-to-remove-multiple-items-from-a-swift - 阵列)。 –