当前位置: 首页 > 知识库问答 >
问题:

如何在Swift中遍历对象数组?

孙京
2023-03-14

我有对象

var person1 = Person()
person1.name = "Joe"
person1.lastName = "Doe"
person1.age = 21

var person2 = Person()
person2.name = "Julia"
person2.lastName = "Ivanova"
person2.age = 22

var person3 = Person()
person3.name = "Irina"
person3.lastName = "Petrova"
person3.age = 25

var person9 = Person()
person9.name = "Vova"
person9.lastName = "Vovin"
person9.age = 32

var person10 = Person()
person10.name = "Masha"
person10.lastName = "Golovanova"
person10.age = 20

var person11 = Person()
person11.name = "Petra"
person11.lastName = "Andreeva"
person11.age = 27

和多阵列

var array = [[person1, person2, person3], [person9, person10, person11]]

例如,我如何通过数组迭代得到一个名字为" Masha "的人

预先感谢

共有3个答案

白萧迟
2023-03-14

这是一种叫做“链接”的技术

操场。斯威夫特 3.1

import UIKit

class Person {
    var name = ""
    var lastName = ""
    var age = 0
}

var person1 = Person()
person1.name = "Joe"
person1.lastName = "Doe"
person1.age = 21

var person2 = Person()
person2.name = "Julia"
person2.lastName = "Ivanova"
person2.age = 22

var person3 = Person()
person3.name = "Irina"
person3.lastName = "Petrova"
person3.age = 25

var person9 = Person()
person9.name = "Vova"
person9.lastName = "Vovin"
person9.age = 32

var person10 = Person()
person10.name = "Masha"
person10.lastName = "Golovanova"
person10.age = 20

var person11 = Person()
person11.name = "Petra"
person11.lastName = "Andreeva"
person11.age = 27

var array = [[person1, person2, person3], [person9, person10, person11]]

array
    .flatMap{$0}
    .forEach { (anyPerson:Person) in

        if anyPerson.name == "Masha" {
            //Do what you need
            print(anyPerson.lastName)
        }
}
耿珂
2023-03-14

解决这个问题的一个有趣的方法是利用 Swift 的平面映射函数。

var array = [[person1, person2, person3], [person9, person10, person11]]

let flatArray = array.flatMap { $0 }

flatArray现在是< code >数组类型的< code >[人员1、人员2、人员3、人员9、人员10、人员11]

然后,您可以在flatArray上迭代以找到您想要的内容:

for person in flatArray {
    if person.name == "Masha" {
        // Do something
    }
}

您甚至可以通过使用Swift 2.0更进一步,因为它允许您在for中放置一个where子句:

for person in flatArray where person.name == "Masha" {
    // Do something
}
屠君墨
2023-03-14

我想试试这个:

var array:[[Person]] = [[person1, person2, person3], [person9, person10, person11]]
/*Casting it like this should keep from getting an error later 
   and/or having to recast the objects*/

for people in array {

/*This is going to look at each array in arrays, 
   and call each one 'people' within this loop*/

    for person in people {

    /*Same thing, this is going to look at each item in the people array
       and call each one 'person' within this loop*/

        if person.name == "Masha" {
            return person
        }
    }
}
 类似资料:
  • 问题内容: 所以现在我有一个程序,其中包含一段看起来像这样的代码… 我想迭代结果。因此,在此先感谢您提供的任何帮助/建议。 问题答案: 在这种情况下,您将拥有一个列表,该列表的元素是以下各项的数组:[maxPrice,minPrice,count]。

  • 问题内容: 我在JavaScript中有一个对象: 我想使用循环来获取其属性。而且我想对其进行迭代(并非一次完成所有对象属性)。 通过一个简单的数组,我可以使用标准循环来做到这一点: 但是如何处理对象呢? 问题答案: 对于大多数对象,请使用: 使用ES6,如果同时需要键和值,请执行 为了避免记录继承的属性,请使用hasOwnProperty进行检查: 如果您使用的是简单对象(例如,您自己创建的对象

  • 本文向大家介绍如何遍历jQuery中的数组和对象?,包括了如何遍历jQuery中的数组和对象?的使用技巧和注意事项,需要的朋友参考一下 要遍历jQuery中的数组和对象,请使用jQuery循环。您可以尝试运行以下代码以了解如何遍历数组和对象- 示例

  • 本文向大家介绍Java 如何遍历JsonObject对象,包括了Java 如何遍历JsonObject对象的使用技巧和注意事项,需要的朋友参考一下 方法: 代码示例: 补充:java生成json格式数据 和 java遍历json格式数据 java 生成json 格式的数据,在需要加入一个创建json的jar包,这个网上有好多,我使用的是org.json的jar包。 通过运行上面的代码就能生成我们想

  • 问题内容: 是否可以在Swift中遍历结构的属性? 我需要在使用许多不同单元格类型的视图控制器中注册单元格重用标识符(单元格组织在不同的nib文件中)。所以我的想法是将所有重用标识符和对应的nib文件作为静态元组属性(reuseID,nibName)放入结构中。但是,如何遍历所有这些元素以将单元格注册到tableView? 我已经尝试过一些东西(请参阅下面的答案)。但是有没有更简单的方法来做到这一

  • 问题内容: 我正在尝试遍历json文件并获取所需的详细信息,这是我的json 我的java代码 如您在代码中所看到的,我正在导入json文件并尝试获取下一个元素并从中打印组件,我还应该同时打印标头,行列式和行列式值。谢谢 问题答案: 您没有数组-您拥有名称为“ 000”等的 属性 。数组如下所示: 请注意,-表示JSON数组。 您可以遍历using 的属性: 要么: