如何在Swift中从数组移除String类型元素?附现有代码示例
问题修正与实现方案
你原有代码中的array.remove(String)属于无效调用,Swift 原生数组没有提供直接传入类型即可移除对应类型所有元素的方法,针对你声明的返回值为[Int]的需求,有两种常见实现场景:
场景1:移除所有String类型,且最终只保留Int类型元素(匹配你现有函数返回值声明)
使用compactMap做安全类型转换即可自动过滤掉所有非Int类型元素(包含你需要移除的String):
func filterString(array:[Any])-> [Int]{ return array.compactMap { $0 as? Int } }
场景2:仅移除所有String类型元素,其余类型全部保留(返回值调整为[Any])
使用filter配合类型判断即可:
func filterString(array:[Any])-> [Any]{ return array.filter { !($0 is String) } }
内容的提问来源于stack exchange,提问作者slowTurtle
相关产品推荐
相关产品推荐

