2016-12-28 3 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.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

시간을내어 도와 주셔서 감사합니다. 귀하의 코드는 이미 가지고있는 코드와 동일하게 보이지만. 고른 쇼가 다시 나타납니다. 하나의 쇼를 두 번 이상 골라 내지 않고 모든 프로그램을 무작위로 선택하는 것이 가능하다고 생각하십니까? –