从过滤器接收只有一个数据结构 [英] Receive only one data from filters to struct

查看:225
本文介绍了从过滤器接收只有一个数据结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

简单的问题,我有以下的结构,我存储在Salas中

  struct SalasMaster {
让id:Int
让nombre:String
let latitud:String
let longitudinal:String
let piso:String
let observaciones:String
let pabellon :字符串
}

var Salas = [SalasMaster]()

...接收数据...
... dump(Salas)
例子 - >
- 纬度:-29.96429300
- longitudinal:-71.34937300
- piso: 1
- observaciones:
- pabellon:X - Escuela deIngeniería

最后,我想要过滤的示例id,在这一刻我得到一个数组在那里,以及所有其他相应的数据

<$ p $ ...

var arrayFiltered = Salas.filter {$ 0.id == 307}

打印(arrayFiltered) - > [SalasMaster(id:307,注:SALA DE PROYECTOS,纬度:-29.96429300,纵向:-71.34937300,piso:1,观察员:,pabellon:X - Escuela deIngeniería) ]

但我找不到方法只返回一个我感兴趣的数据从ID,在这种情况下,我只想捕获纬度,但在另一种情况下,我可能需要另一个。

您可以使用 first(where:) ,因为它会给你第一个匹配的记录并停止搜索。

  if let sale = Salas.first(where:{$ 0.id == 307}){
print(sale.latitud)
}


Short question, I have the following structure, which I store in "Salas"

struct SalasMaster {
    let id: Int
    let nombre: String
    let latitud: String
    let longitud: String
    let piso: String
    let observaciones: String
    let pabellon: String
}

var Salas = [SalasMaster]()

...receiving data...
...dump(Salas)
        example -> SalasMaster
                   - id: 307
                   - nombre: "SALA DE PROYECTOS "
                   - latitud: "-29.96429300"
                   - longitud: "-71.34937300"
                   - piso: "1"
                   - observaciones: ""
                   - pabellon: "X - Escuela de Ingeniería"

And finally what I want is to filter the example id, at this moment I get an array where it is, along with all other corresponding data

...filter data...

var arrayFiltered = Salas.filter{$0.id == 307}

Print(arrayFiltered) -> [SalasMaster(id: 307, nombre: "SALA DE PROYECTOS ", latitud: "-29.96429300", longitud: "-71.34937300", piso: "1", observaciones: "", pabellon: "X - Escuela de Ingeniería")]

But I can't find the way to return only one data that I'm interested in retrieving from "id", in this case I want to capture only "latitud", although in another case I might need another one.

解决方案

You can use first(where:) for that because it will give you first matching record and stop searching after it.

if let sale = Salas.first(where: { $0.id == 307 }) {
    print(sale.latitud)
}

这篇关于从过滤器接收只有一个数据结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆