我想从数组中删除字符串

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

【讨论】:

以上是关于我想从数组中删除字符串的主要内容,如果未能解决你的问题,请参考以下文章

我想从字符串中删除部分字符串

从Swift数组中的选定复选标记中删除字符串

如何从字符串类型数组中删除整数?

如何删除多维字符串数组中的空元素?

从分解的字符串中删除空数组元素[重复]

我想从数组中 UITableviewCell 的文本字段中添加字符串