【发布时间】:2019-06-03 08:24:33
【问题描述】:
我想按数值对数组数据进行排序,例如“90 > 80 > 70 ...> 10”。
但我不知道如何比较多个属性。
struct Item {
let number1: Double
let number2: Double
let number3: Double
}
let item1 = Item(number1:0, number2:0, number3:10)
let item2 = Item(number1:20, number2:0, number3:0)
let item3 = Item(number1:0, number2:30, number3:0)
let item4 = Item(number1:0, number2:0, number3:40)
let item5 = Item(number1:0, number2:50, number3:0)
let item6 = Item(number1:60, number2:0, number3:0)
let item7 = Item(number1:0, number2:70, number3:0)
let item8 = Item(number1:0, number2:0, number3:80)
let item9 = Item(number1:0, number2:90, number3:0)
var array:[Item] = [item1, item2, item3, item4, item5, item6, item7, item8, item9]
array = array.sorted { (item, nextItem) -> Bool in {
item.number3 < nextItem.number3 //how to add item's number2 & number1 into here.
}
【问题讨论】:
-
你的最终结果应该是什么样的?
-
这可能就是你要找的东西:Sort array of objects with multiple criteria.
-
@Beginnerrrrrr 你想通过 3 个数字的总和来比较吗?
-
目前还不清楚您要的是什么。 –
Item(number1:20, number2:0, number3:0)比Item(number1:0, number2:30, number3:0)大还是小? 为什么? -
没有指定排序顺序就没有“仅排序” - 这是您的任务。我们无法猜测您在寻找什么。