回答編集履歴

2 補足

masaya_ohashi

masaya_ohashi score 8857

2018/02/01 09:18  投稿

```JavaScript
var num = Math.floor(Math.random() * words.length);
```
これは「カードの中でどれかの番号」を求める式ですね。例えば5枚のカードがあるなら0〜4の数字がランダムで求められます。numには「◯番目」という情報が入り、その後の処理で「◯番目のカードの情報をcardFrontやcardBackに入れる」という処理が行われています。つまり、「◯番目」という情報が順番通りに進み、「0番目のカードから始めて、NEXTを押すたびに次のカードにしたい」ということですよね?
```JavaScript
var num = 0; // numを0から始める
function next() {
 num++; // 次のカードに行く前にnumに1を足す
 if (card.className === 'open') {
   card.addEventListener('transitionend', setCard);
   flip();
 } else {
   setCard();
 }
}
function setCard() {
 // numをランダムで求めるのをやめる
 // var num = Math.floor(Math.random() * words.length);
 cardFront.innerHTML = words[num]['en'];
 cardBack.innerHTML = words[num]['ja'];
 card.removeEventListener('transitionend', setCard);
}
```  
```
ちなみにこの処理、「5番目(存在しないカード)」まで進んでしまうとバグってしまうので、対処を考えてくださいね。
1 num++の位置修正

masaya_ohashi

masaya_ohashi score 8857

2018/02/01 09:17  投稿

```JavaScript
var num = Math.floor(Math.random() * words.length);
```
これは「カードの中でどれかの番号」を求める式ですね。例えば5枚のカードがあるなら0〜4の数字がランダムで求められます。numには「◯番目」という情報が入り、その後の処理で「◯番目のカードの情報をcardFrontやcardBackに入れる」という処理が行われています。つまり、「◯番目」という情報が順番通りに進み、「0番目のカードから始めて、NEXTを押すたびに次のカードにしたい」ということですよね?
```JavaScript
var num = 0; // numを0から始める
function next() {
 num++; // 次のカードに行く前にnumに1を足す  
 if (card.className === 'open') {
   card.addEventListener('transitionend', setCard);
   flip();
 } else {
   num++; // 次のカードに行く前にnumに1を足す  
   setCard();
 }
}
function setCard() {
 // numをランダムで求めるのをやめる
 // var num = Math.floor(Math.random() * words.length);
 cardFront.innerHTML = words[num]['en'];
 cardBack.innerHTML = words[num]['ja'];
 card.removeEventListener('transitionend', setCard);
}
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る