为什么我的排序算法排序不正确?

我在对我发布的问题的最佳答案中获得了此排序功能。它适用于示例数据,但似乎不适用于我的实际数据,我不确定为什么。

我的数据可以在这里看到:JSON

它是这样的对象的对象:

"Montana": {

    "superiors": [

      "Massachusetts",

      "Oklahoma",

      "New Mexico"

    ],

    "inferiors": [

      "North Carolina"

    ]

  }

它的存在是为了指示排序功能。在这里,Montana在列表中的位置必须高于North Carolina。但在下面Massachusetts,,Oklahoma和New Mexico(顺便说一句,与地理无关)。


注意避免混淆:

这与对象键的顺序无关。

但是排序并没有被精确地遵循(虽然它主要被遵循)。例如,states['North Carolina'].superiors.includes('Ohio') === true为什么'Ohio'列在下面'North Carolina'?


叮当猫咪
浏览 80回答 2
2回答

哔哔one

您只有部分订单而不是总订单(并非所有州都在其superiors/inferiors列表中列出所有其他订单),因此您的分数计算不起作用。各州最终的分数取决于它们被提及的频率,而不是它们的相对顺序。您需要实现拓扑排序算法。

POPMUISE

您的数据不包含矛盾,但肯定不会正确列出所有内容。示例:爱荷华州-俄克拉荷马州对。俄克拉荷马州被列为优于爱荷华州,但爱荷华州并未被列为不如俄克拉荷马州。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript