【发布时间】:2022-01-01 16:01:45
【问题描述】:
这是我的代码
func filterString(array:[Any])-> [Int]{
return array.remove(String)
}
【问题讨论】:
这是我的代码
func filterString(array:[Any])-> [Int]{
return array.remove(String)
}
【问题讨论】:
func filterString(array:[Any])-> [Any]{
var finalArr : [Any] = []
for i in array{
if i is String.Type == false{
finalArr.append(i)
}
}
return finalArr
}
【讨论】:
一个简单的过滤器就足够了
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] ?? []
}
【讨论】:
差不多
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}
}
【讨论】: