ios - Swift - 数组过滤器,然后更新主数组

标签 ios arrays swift nsarray

let cities = [{ "name" : "SF", "id" : 4, "population" : 10, favorite: false},  { "name" : "NY", "id" : 5, "population" : 20, favorite: false}, { "name" : "DC", "id" : 6, "population" : 30, favorite: false}

我有一个数组,如果用户应用基于人口的过滤器,我可以使用 filter 方法过滤该数组,但它为我提供了另一个包含过滤数据的数组。在过滤数组中,用户可以最喜欢的城市,当用户删除过滤器时,我需要显示带有最喜欢指示器的城市的完整列表。问题是过滤数组是一个单独的数组,完整数组不知道过滤数组上的属性是否已更改。有没有更简单的方法来处理这一切?我可以过滤主数组而不是创建另一个数组吗?

最佳答案

创建 JSON 结构

struct City {
    var name : String = ""
    var id : Int = 0
    var population : Int = 0
    var favorite : Bool = false
}

这是城市数组

var cities = [City(name: "SF", id: 4, population: 10, favorite: false),City(name: "NY", id: 5, population: 10, favorite: false),City(name: "DC", id: 6, population: 30, favorite: false)]

然后根据人口 == 10 对城市应用过滤器

var filter = cities.filter({ $0.population == 10 })

然后选择其中最喜欢的一个

Ex:- filter[1].favorite = true

并在主数组中更新这个最喜欢的城市

cities = cities.map { (city) -> City in
    var city = city
    if city.id == filter[1].id {
        city.favorite = true
    }
    return city
}

关于ios - Swift - 数组过滤器,然后更新主数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53604711/

相关文章:

javascript - 条件合并2个二维数组

ios - 删除 Sprite 的动画

ios - Swift 中的 UIWebView 离线错误

ios - 在 objective-c 中隐藏键盘

ios - 如何在 PFQuery where 查询中设置整数值?

c++ - 指向数组的指针

c - 从 C 中的数组打印重复项时出现冗余结果?

ios - 如何在 Swift 中构造多个 HTTP 请求?

swift - 结合AVCaptureSession翻UIPageViewController页面

ios - 将RTF文件解析为NSArray- objective-c