如何通过名称值从数组中删除字典元素[重复]

Posted

技术标签:

【中文标题】如何通过名称值从数组中删除字典元素[重复]【英文标题】:How to remove the dictionary element from an array by its name value [duplicate] 【发布时间】:2021-12-31 06:32:57 【问题描述】:

我有一个用于名称列表和 url 的数组列表 想要删除

    func getNameListData() -> [[String: Any]] 
        return [
            [
                "name”: “Jonny”,
                "imageName”: “url.png"
            ],
            [
                "name”: ”Mark”,
                "imageName”: “url.png”
            ],
            [
                "name": “Kiran”,
                "imageName": “url.png”
            ],
            [
                "name": “David”,
                "imageName": “url.png”
            ],
        ]

// 获取名称列表数组

  var nameList = self.getNameListData()

// 删除索引值处的对象 nameList.remove(at: 0) // 移除指定元素的元素

如何按名称值删除元素?

这是我尝试过的,它不适合我。

if let index = nameList.firstIndex(where: $0 as? String == "Kiran" ) 
    nameList.remove(at: index)
    

如果有任何方法可以从 JSONDictionary 数组中删除元素,即 [[String:Any]]

它给出以下警告

从“JSONDictionary”(又名“Dictionary”)转换为不相关的类型“String”总是失败 从“JSONDictionary”(又名“Dictionary”)转换为不相关类型“String”总是失败

结果计数 = 3。

【问题讨论】:

不相关但你为什么使用未指定的Any?字典明明是[String:String] 【参考方案1】:

非常接近 - 现在,您正尝试将整个 [String:Any] 字典强制转换为 String。相反,您应该只查看“名称”条目并将其值转换为 String 以与“Kiran”进行比较。

if let index = nameList.firstIndex(where: $0["name"] as? String  == "Kiran" ) 
    nameList.remove(at: index)

【讨论】:

以上是关于如何通过名称值从数组中删除字典元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用两个匹配的子值从关联数组中删除元素

如何按值从数组中删除一个元素

根据值从多维数组中删除元素

iOS数组的去重,判空,删除元素,删除重复元素 等

如何从字典中的列表中删除元素[重复]

如何从IOS中的字典数组中删除重复性? [关闭]