2016-12-28 8 views
1

Я работаю с кодом, встроенным в Adobe Animate CC. Он работает нормально. Но я хочу, чтобы уже выбранные серии были удалены из массива, поэтому я всегда выбираю новую серию, когда я нажимаю кнопку. Я много искал, но не нашел ничего, что работает. Может кто-нибудь мне помочь?Удаление уже выбранной фразы из массива

Вот код:

var myShows = ['Bones', 'Psych', 'Big Bang Theory', 'Mad Men', 
'Breaking Bad', 'Modern Family', 'Game of Thrones', 'Dexter']; 


this.knapp.addEventListener("click", playClicked.bind(this)); 
function playClicked() { 
    var show = myShows[Math.floor(Math.random() * myShows.length)]; 
    this.tekst.text = show 

} 
+0

Вы можете сделать так: 'var show = myShows.splice (Math.floor (Math.random() * myShows.length), 1) [0];' так, чтобы случайно выбранное шоу удалялось из ' myShows', и в следующий раз его нельзя будет выбрать. – Redu

+0

Фантастический! Он работал отлично и так просто. Спасибо! –

ответ

0

Что-то вдоль этих линий должно работать. Ниже приведена моя попытка вернуть код:

var allShows = ['Bones', 'Psych', 'Big Bang Theory', 'Mad Men', 
'Breaking Bad', 'Modern Family', 'Game of Thrones', 'Dexter']; 
var currentShow = allShows[0]; //Just to initialize 


// Filter out the one you have selected 
function getAvailableShows() { 
    return allShows.filter(function(e) { return e !== currentShow }) 
} 

function playClicked() { 
    // make a pool - current one playing 
    var availableShows = getAvailableShows(); 

    // choose one from random 
    var show = availableShows[Math.floor(Math.random() * availableShows.length)]; 

    // update current show 
    currentShow = show; 

    // updae text 
    this.tekst.text = show; 
} 

this.knapp.addEventListener("click", playClicked.bind(this)); 

Вот ручка кода, показывающая, что она работает через консольный журнал. https://codepen.io/easement/pen/MbNwdw

+0

Большое спасибо за то, что нашли время и постарались мне помочь. Хотя ваш код, похоже, делает то же самое, что и тот, который у меня уже есть. Выбранные шоу снова появляются. Как вы думаете, можно будет выбрать все шоу в произвольном порядке, не выбирая одно шоу дважды или более? –