从组中快速选择唯一团队

时间:2016-02-18 19:50:05

标签: javascript node.js algorithm hash

我有一个情况,其中我有150名球员的名单(姓名,身份证(uuid),球队名称等)。

  1. 用户可以组建一个由10名玩家组成的团队,他可以创建尽可能多的团队。
  2. 我需要确保用户不会尝试两次保存同一个团队,即不同顺序的同一组玩家。
  3. 我想以最有效的方式实现它。我正在考虑一个可以解决我的问题的散列函数。我还没想到它,但我只是想知道你们的想法是什么?如果它仍有帮助,我必须在nodejs中实现它。

1 个答案:

答案 0 :(得分:0)

当用户组建团队时,对名称列表进行排序并将其与list.join()连接在一起。

使用生成的字符串作为密钥来检测重复的团队,如下所示:

var check={};

function submit(team /*array*/) {
    var key = team.sort().join();
    if (check[key]) {
        //... error, duplicate ...
    }
    check[key]=true;
    //... continue with submission...

这可能是JavaScript中最快的方式