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

時間をかけて私を助けてくれてありがとう。あなたのコードはすでに持っているコードと同じように見えますが。選んだショーが再び現れます。 1つのショーを2回以上選ぶことなく、すべてのショーをランダムな順序で選ぶことができると思いますか? –

関連する問題