Javascript, заполнить массив без повторяющихся строк - PullRequest
0 голосов
/ 28 апреля 2018

Я сделал эту программу на python и хотел добиться таких же результатов в Javascript. К сожалению, я борюсь с одним последним фрагментом, который состоит в том, что человек добавлен в окончательный массив 'баржа', я не хочу, чтобы они использовались снова, так как я не могу иметь дубликатов людей в конечном массиве. любые предложения о том, что я скучаю. Снова в python, я получил это прибито, но я не могу заставить дубликаты остановиться. Также открыт для любой помощи с этой программой в целом. Спасибо!

var a = ['mike', 'dan', 'christian', 'trevor', 'jess'];
var b = ['mike', 'sarah', 'kenny', 'trevor', 'dennis', 'jeff'];
var c = ['pavel', 'sean', 'kenny', 'chris', 'lucas', 'elizibeth'];
var d = ['sarah', 'sean', 'allison', 'jules', 'trevor', 'jeff'];
var e = ['sarah', 'sean', 'jules', 'trevor', 'chris'];
var f = ['val', 'kirk', 'pavel', 'sean', 'kenny', 'chris', 'lucas', 'elizibeth'];
var g = ['mike', 'sarah', 'kenny', 'trevor', 'dennis', 'jeff'];
var h = ['val', 'sarah', 'allison', 'kenny', 'trevor', 'lucas'];


function randomChoice(list) {
  return (list[Math.floor(Math.random() * list.length)]);
};
var barge = []
while (barge.length < 8) {
  var barge = []
  var used = []
  var alpha = randomChoice(a);
  if (!(alpha in used)) {
    barge.push(alpha);
    used.push(alpha);
    var bravo = randomChoice(b);
    if (!(bravo in used)) {
      barge.push(bravo);
      used.push(bravo);
      var charlie = randomChoice(c);
      if (!(charlie in used)) {
        barge.push(charlie);
        used.push(charlie);
        var delta = randomChoice(d);
        if (!(delta in used)) {
          barge.push(delta);
          used.push(delta);
          var echo = randomChoice(e);
          if (!(echo in used)) {
            barge.push(echo);
            used.push(echo);
            var foxtrot = randomChoice(f);
            if (!(foxtrot in used)) {
              barge.push(foxtrot);
              used.push(foxtrot);
              var golf = randomChoice(g);
              if (!(golf in used)) {
                barge.push(golf);
                used.push(golf);
                var hotel = randomChoice(h);
                if (!(hotel in used)) {
                  barge.push(hotel);
                  used.push(hotel);
                }
              }
            }
          }
        }
      }
    }
  }
};
console.log(barge);

1 Ответ

0 голосов
/ 28 апреля 2018

Простым решением будет использование Set .

var set = new Set(); 
set.add('mike');
set.add('dan');
...

Наборы содержат уникальные значения, поэтому у вас будет (максимум) один экземпляр каждого имени.

...