【问题标题】:Is there a way to sort an array by a subarray's index in Swift?有没有办法在 Swift 中通过子数组的索引对数组进行排序?
【发布时间】:2019-09-24 01:27:32
【问题描述】:

假设我有一个整数数组数组,其中每个子数组是 2 个元素。

即:

[[1,2] , [3,7] , [2,9] , [10,19]]

有没有办法按每个子数组的第一个索引对该数组进行排序?对于上述数组,正确的解决方案是:

[[1,2] , [2,9] , [3,7] , [10,19]]

因为 1

任何帮助将不胜感激!

【问题讨论】:

  • 显示到目前为止您已经尝试过的内容。说明你有什么问题。你必须有一些代码。
  • 小提示,看看 .sorted(by: ) 函数,它接受一个闭包,你可以在其中实现这种排序

标签: arrays swift algorithm sorting


【解决方案1】:

这会返回你想要的吗?

[[1,2] , [3,7] , [2,9] , [10,19]].sorted(by: {$0[0]<$1[0]})

【讨论】:

  • 非常感谢您的帮助!我只是不熟悉 swift 语法,所以我不太明白 {$0[0]
  • @Wallace 请阅读Swift book。我建议大家阅读全文,但在这种特殊情况下,您应该阅读关于闭包的部分。
  • @Wallace by: 参数是一个函数或闭包,它接受两个Elements 并返回一个Bool。如果返回是true,则第一个Element 将首先排序。在匿名闭包中,$0$1 分别隐式表示第一个和第二个参数。 {$0[0]<$1[0]} 是一个闭包,如果数组中左侧数组的第一个元素小于右侧的第一个元素,则返回 true。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-03
  • 2017-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-20
  • 1970-01-01
相关资源
最近更新 更多