当前位置: 首页 > 面试题库 >

如何使用array.filter基于属性过滤类对象?

凌俊名
2023-03-14
问题内容

我正在尝试过滤一个类的实例数组。我想要一个由类属性之一过滤的新数组。Swift过滤器在此用例中的工作方式无法完全理解。

enum Gender {
    case male,female
}

class Person {
    let name:String
    let gender:Gender
    init(name:String,gender:Gender) {
        self.name = name
        self.gender = gender
    }
}


let people = [Person.init(name: "James", gender: .male),
              Person.init(name: "John", gender: .male),
              Person.init(name: "Sally", gender: .female)
             ]

let males = people.filter( something )

问题答案:

这应该工作…

let males = people.filter({ $0.gender == .male })

您可能需要使您的枚举符合等式才能进行此比较。

$ 0是一个未命名的参数,您也可以这样做。

let males = people.filter({ person in return person.gender == .male })

编辑:我刚刚测试了它,它的工作而不会使枚举符合等于。我认为您只需要在枚举带有参数时执行此操作。



 类似资料:
  • 问题内容: 如果我有一个对象数组,并且想将Angular模型绑定到基于过滤器的元素之一的属性,该怎么做?我可以用一个具体的例子更好地解释: HTML: 控制器: JSBin:http://jsbin.com/adisax/1/edit 我想将第二个输入过滤为具有’C’等级的主题,但是我不想将模型绑定到该 等级 ;我想将其绑定到等级为“ C”的主题的 标题 。 这可能吗?如果可以,怎么做? 问题答案

  • 基于 那个东西的 以下是我目前所尝试的: 我想使用一个Java8流和两个getter的lambdas来完成这一操作,这两个getter最终检索用于确定唯一性的属性,但不确定如何实现。当用于比较的属性位于pojo的顶层时,我知道如何做,但当属性嵌套在另一个对象中时,我不知道如何做。

  • 问题内容: 我试图在AngularJS中创建一个自定义过滤器,该过滤器将通过特定属性的值过滤对象列表。在这种情况下,我要按“极性”属性(“正”,“中性”,“负”的可能值)进行过滤。 这是我没有过滤器的工作代码: HTML: 这是JSON格式的“ $ scope.tweets”数组: 我可以提出的最佳过滤器如下: 此方法返回一个空数组。从“ console.log(polarity)”语句中不会打印

  • 我正在使用Jackson的JsonNode解析json。我的json结构如下所示(设为变量rawJson): 在Java中: 如何通过过滤属性<code>name</code>来获得特定的JsonNode元素?如果我想得到<code>值</code>大于X的JsonNode元素,怎么样?我是否可以在不遍历<code>结果</code>变量的情况下完成这些操作?

  • 问题内容: 我喜欢使用jq过滤json文件: 给定json包含对象数组: 我想过滤该列表以仅显示ID值为2和4的元素,因此预期的输出为: 如何使用jq过滤json?我玩过select和map,但是没有任何一个可以使用,例如: 问题答案: 从文档: 输入项 输出量 我认为您可以执行以下操作:

  • 问题内容: 我有以下JavaScript数组的房地产主页对象: 我想做的是能够对对象执行过滤,以返回“家庭”对象的子集。 例如,我想根据能够过滤:,,,和。 如何在JavaScript中执行类似下面的伪代码的操作: 注意,语法不必与上面完全相同。这只是一个例子。 问题答案: 您可以使用以下方法: 现场示例: 此方法是新ECMAScript 5th Edition标准的一部分,几乎可以在所有现代浏览