我想从数组中删除字符串
Posted
技术标签:
【中文标题】我想从数组中删除字符串【英文标题】:I want to remove out Strings from an Array 【发布时间】:2022-01-01 16:01:45 【问题描述】:这是我的代码
func filterString(array:[Any])-> [Int]
return array.remove(String)
【问题讨论】:
medium.com/@valsamiselmaliotis/… 【参考方案1】:func filterString(array:[Any])-> [Any]
var finalArr : [Any] = []
for i in array
if i is String.Type == false
finalArr.append(i)
return finalArr
【讨论】:
感谢您提供答案。您能否编辑您的答案以包括对您的代码的解释?这将有助于未来的读者更好地了解正在发生的事情,尤其是那些刚接触该语言并难以理解概念的社区成员。【参考方案2】:一个简单的过滤器就足够了
var arr: [Any] = ["", "", 1, 2.5]
print(arr.filter( $0 is Int ))
// print [1]
这将返回您在代码中搜索的 Int 数组。但您也可以过滤仅删除字符串,保持其余部分完好无损:
var arr: [Any] = ["", "", 1, 2.5]
print(arr.filter( !($0 is String) ))
// print [1, 2.5]
还有你的功能:
func filterString(array: [Any]) -> [Int]
array.filter $0 is Int as? [Int] ?? []
【讨论】:
【参考方案3】:差不多
var array : [Any] = [1, "one", 2, "two", 3, "three"]
array.removeAll(where: $0 is String)
或者使用你的函数,你必须删除所有不是Int
的东西
func filterString(array: [Any]) -> [Int]
var temp = array
temp.removeAll(where: $0 is Int == false)
return temp as! [Int]
另一种方式是compactMap
func filterString(array: [Any]) -> [Int]
return array.compactMap$0 as? Int
【讨论】:
以上是关于我想从数组中删除字符串的主要内容,如果未能解决你的问题,请参考以下文章