flash cards2

by zxzc0

HTML

<p>Do you know this word?</p>

<div class="word" id="word1"></div>
<div class="word" id="word2">-</div>
<div class="bt" id="btx">no</div>
<div class="bt" id="bt">show</div>
<div class="bt" id="btv">yes</div>

<p style="font-size: 12px;">If you click "no" word will stay in the array, if you click "yes" word will be delete from array.</p>

CSS

*{
  box-sizing: border-box;
}

body {
  background-color: #20262e;
  color: white;
  font-size: 20px;
}

.word {
  padding: 10px;
}

.bt {
  width: 80px;
  height: 50px;
  border: 1px solid white;
  display: inline-block;
  color: white;
  font-size: 20px;
  padding-top: 12px;
  text-align: center;
  cursor: pointer;
}

.x{
  border: 1px solid red;
}

.v{
  border: 1px solid green;
}

JavaScript

var words = [
	{q: 'der Schreibtisch', a: 'desk'},
  {q: 'der Schrank', a: 'cupboard'},
  {q: 'das Sofa', a: 'Sofa'},
]

const word1 = document.querySelector('#word1');
const word2 = document.querySelector('#word2');

const btno = document.querySelector('#btx');
const btshow = document.querySelector('#bt');
const btyes = document.querySelector('#btv');

/*function num(){
	savedNum = Math.floor(Math.random() * words.length);
}*/

/*const num = (function() {
  let savedNum;
  function num() {
    if (savedNum === undefined) {
      savedNum = Math.floor(Math.random() * words.length);
    }
    return savedNum;
  }
  // I want the num function to be visible to outside world, so i return it.
  return num;
})();*/

let savedNum;
function num() {
  if (savedNum === undefined) {
    savedNum = Math.floor(Math.random() * words.length);
  }
  return savedNum;
}

function rand(){
  randomWord = word1.innerText = words[savedNum].q;
}

rand();

btshow.addEventListener("click", function(){
	rand();
});

btno.addEventListener("click", function(){
	word1.innerText = randomWord;
});

btyes.addEventListener("click", function(){
  words.splice(num(), 1);
  rand();
  word2.innerText = '-';
});