2016-02-18 6 views
0

У меня есть ситуация, когда у меня есть список из 150 игроков (имена, id (uuid), имена команд и т. Д.).Быстрый уникальный выбор команды из группы

  1. Пользователь может создать команду из 10 игроков, и он может создать как можно больше команд.
  2. Мне нужно убедиться, что пользователь не пытается сохранить ту же команду дважды, то есть тот же самый набор игроков в другом порядке.

Я хочу достичь этого наиболее эффективным способом. Я думал о функции хеширования, которая могла бы решить мою проблему. Я еще не понял, но я просто хотел знать, что вы, ребята, думаете? Я должен реализовать это в nodejs, если это все равно.

+0

возможно дубликат http://stackoverflow.com/questions/7837456/how-to-compare-arrays-in-javascript – phenxd

+0

Иногда мне кажется, что лучше закодировать что-то, что работает, а затем посмотреть, будет ли оно улучшено. Я чувствую, что это один из таких случаев. – phenxd

ответ

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

+0

Мне понравилось ваше решение – tumulr

Смежные вопросы