根据另一个数组的顺序对数组进行有效排序

喵喵喵

假设我有这个:

struct Pet {
    let name: String
}

let pets = [Pet(name: "Z"), Pet(name: "F"), Pet(name: "A"), Pet(name: "E")]
let petNames = ["E", "F", "Z", "A"]

我的预期输出是:

[Pet(name: "E"), Pet(name: "F"), Pet(name: "Z"), Pet(name: "A")]

如何pets按照petNames“顺序”进行有效排序?

我目前的方法似乎非常低效:

var sortedPets = [Pet]()
for n in petNames {
    sortedPets.append(pets.first(where: { return $0.name == n })!)
}

我可以使用的任何功能方法?

哑光

效率不高,但从功能上解决了问题:

let pets2 = pets.sorted{petNames.index(of:$0.name)! < petNames.index(of:$1.name)!}

现在我们知道我们要做什么,这更复杂但更有效,因为字典查找速度很快:

var d = [String:Int]()
zip(petNames, 0..<petNames.count).forEach { d[$0.0] = $0.1 }
let pets2 = pets.sorted{d[$0.name]! < d[$1.name]!}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据另一个数组的顺序对数组数组进行排序(Ruby)

来自分类Dev

根据另一个数组中的顺序对数组数组进行排序

来自分类Dev

根据另一个数组的排序顺序对数组进行排序

来自分类Dev

根据另一个数组中定义的排序顺序对数组进行排序

来自分类Dev

根据另一个数组按顺序对数组进行排序

来自分类Dev

根据具有重复项的另一个数组的顺序对数组进行排序

来自分类Dev

Javascript使用下划线根据另一个数组顺序对数组顺序进行排序

来自分类Dev

用另一个最有效地对数组进行排序

来自分类Dev

根据另一个数组的顺序对一个数组进行排序

来自分类Dev

CUDA:使用推力根据另一个数组定义的顺序对数组进行排序

来自分类Dev

根据另一个数组的排序顺序对多个数组进行排序

来自分类Dev

根据另一个数组的排序顺序对多个数组进行排序

来自分类Dev

如何根据另一个数组的排序顺序对多个数组进行排序

来自分类Dev

以与另一个数组相同的顺序对数组进行排序

来自分类Dev

按另一个数组的顺序对数组进行排序

来自分类Dev

javascript-按另一个数组的顺序对数组进行排序

来自分类Dev

以与另一个数组相同的顺序对数组进行排序

来自分类Dev

根据数组键顺序对另一个数组内的数组进行排序

来自分类Dev

PHP:根据另一个数组对数组进行排序

来自分类Dev

根据另一个数组对数组进行排序,迅速

来自分类Dev

根据PHP上的另一个数组对数组的元素进行排序

来自分类Dev

根据javascript中的另一个数组对数组进行排序

来自分类Dev

如何根据另一个数组的位置对数组进行排序?

来自分类Dev

在绘制之前根据另一个数组对数组进行排序

来自分类Dev

如何根据另一个数组的值对数组的值进行排序

来自分类Dev

如何按字母顺序对数组进行排序,然后将顺序赋予另一个数组?

来自分类Dev

根据另一个数组中的排序索引对数组重新排序

来自分类Dev

根据另一个数组的值对一个数组进行排序?

来自分类Dev

如何根据JavaScript中的另一个数组对数组排序?

Related 相关文章

  1. 1

    根据另一个数组的顺序对数组数组进行排序(Ruby)

  2. 2

    根据另一个数组中的顺序对数组数组进行排序

  3. 3

    根据另一个数组的排序顺序对数组进行排序

  4. 4

    根据另一个数组中定义的排序顺序对数组进行排序

  5. 5

    根据另一个数组按顺序对数组进行排序

  6. 6

    根据具有重复项的另一个数组的顺序对数组进行排序

  7. 7

    Javascript使用下划线根据另一个数组顺序对数组顺序进行排序

  8. 8

    用另一个最有效地对数组进行排序

  9. 9

    根据另一个数组的顺序对一个数组进行排序

  10. 10

    CUDA:使用推力根据另一个数组定义的顺序对数组进行排序

  11. 11

    根据另一个数组的排序顺序对多个数组进行排序

  12. 12

    根据另一个数组的排序顺序对多个数组进行排序

  13. 13

    如何根据另一个数组的排序顺序对多个数组进行排序

  14. 14

    以与另一个数组相同的顺序对数组进行排序

  15. 15

    按另一个数组的顺序对数组进行排序

  16. 16

    javascript-按另一个数组的顺序对数组进行排序

  17. 17

    以与另一个数组相同的顺序对数组进行排序

  18. 18

    根据数组键顺序对另一个数组内的数组进行排序

  19. 19

    PHP:根据另一个数组对数组进行排序

  20. 20

    根据另一个数组对数组进行排序,迅速

  21. 21

    根据PHP上的另一个数组对数组的元素进行排序

  22. 22

    根据javascript中的另一个数组对数组进行排序

  23. 23

    如何根据另一个数组的位置对数组进行排序?

  24. 24

    在绘制之前根据另一个数组对数组进行排序

  25. 25

    如何根据另一个数组的值对数组的值进行排序

  26. 26

    如何按字母顺序对数组进行排序,然后将顺序赋予另一个数组?

  27. 27

    根据另一个数组中的排序索引对数组重新排序

  28. 28

    根据另一个数组的值对一个数组进行排序?

  29. 29

    如何根据JavaScript中的另一个数组对数组排序?

热门标签

归档