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

基于布尔值的对象的Swift排序数组

谯皓君
2023-03-14
问题内容

我正在寻找一种基于布尔值对Swift数组进行排序的方法。

我已经使用强制转换为NSArray来工作了:

var boolSort = NSSortDescriptor(key: "selected", ascending: false)
var array = NSArray(array: results)
return array.sortedArrayUsingDescriptors([boolSort]) as! [VDLProfile]

但是我在寻找Swift变体,有什么想法吗?

更新 感谢Arkku,我设法使用以下代码修复了此问题:

return results.sorted({ (leftProfile, rightProfile) -> Bool in
    return leftProfile.selected == true && rightProfile.selected != true
})

问题答案:

斯威夫特的阵列可以在适当的位置进行排序sort或用新的阵列sorted。这两个函数的单个参数都是一个闭合,该闭合带有两个元素,true如果第一个元素在第二个元素之前被排序,则返回。使用闭包的参数的最短方法是将其称为$0$1

例如(首先对真正的布尔值排序):

// In-place:
array.sort { $0.selected && !$1.selected }

// To a new array:
array.sorted { $0.selected && !$1.selected }

(编辑:已为Swift 3和Swift 4更新,以前sortsortInPlaceand sortedsort。)



 类似资料:
  • 我知道MapStruct可以忽略未映射的属性和特定的目标属性,但是否可以根据属性的实际值来删除属性? 我有布尔字段,只有当它们为false时,我才想排除它们。 提前感谢! 示例: 实体: DTO: MapStruct映射器: 我只想在布尔变量的值为“false”时完全排除它们。

  • 我试图对包含大约100个大型实体(几乎有30个键)的对象数组进行排序,其基础是key的值,这些值深深嵌套在一个对象中,为此我使用了Lodash的orderBy方法: *考虑sortOrder为desc或asec 但排序过程所花费的时间相当长。我们可以使用哪种更好的方法来将键深埋在对象中对对象数组进行排序? 示例数据(考虑这样的50个条目至少有40个键)

  • 问题内容: 众所周知,Python具有对象的布尔值:如果一个类具有一个方法,则该方法的每个实例恰好返回0的值都将被评估为布尔值(例如,空列表)。 实际上,每个可迭代的空自定义对象都被评估为好像它出现在布尔表达式中一样。 现在假设我有一个带有attribute的类。我如何定义它的真值,这样,也就是说,它会进行评估,并以其他方式? 例如: 因此,应打印。 问题答案: 请参阅Python文档。

  • 本文向大家介绍JS sort方法基于数组对象属性值排序,包括了JS sort方法基于数组对象属性值排序的使用技巧和注意事项,需要的朋友参考一下 sort方法接收一个函数作为参数,这里嵌套一层函数用来接收对象属性名,其他部分代码与正常使用sort方法相同. 如何根据参数不同,来确定是升序排列,还是降序排序呢? 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 例如,我有以下数据集: 我需要根据数组中的条件对数组进行排序。我最终得出了这样的解决方案: 但我无法理解如何使用数组而不是硬编码的和属性。数组可以有许多属性。

  • 问题内容: 我在表中列出了用户列表。 活动用户应在非活动用户上方排序。 我正在尝试使用lodash 函数进行此操作,但未成功。 这里是如何的外观: 这是带有用户数组和sortBy loadsh函数代码的代码笔:https ://codepen.io/nikolatrajkovicq/pen/pGXdpM?editors = 1112 任何地方都欢迎。 问题答案: 您可以这样使用: 您可以只减去中的