在执行Math.Random时排除数组中的已删除值

时间:2018-03-03 15:48:57

标签: javascript

当我在按钮上单击三次时,我试图找到一种删除字母(A,B,C)的方法,我尝试使用delete,因为我不想使用{{ 1}},因为splice会改变数组的顺序。我希望变量spliceletterAletterB保持在数组上的位置。我正在寻找的是:letterC再次执行math.random,直到它得到与undefined不同的东西,可能会使用一段时间。

我试过,但似乎没有用。你对我的问题有什么解决方案吗?请不要使用jQuery,只需普通的JS。

if (randomletters == undefined)
var A = 0;
var B = 0;
var C = 0;

function incrementA() { A++; }
function incrementB() { B++; }
function incrementC() { C++; }


var letters = new Array()
letters[0] = 'letterA'
letters[1] = 'letterB'
letters[2] = 'letterC'
var randomletter;


function random() {
  if (A == 3) { delete letters[0]; }
  if (B == 3) { delete letters[1]; }
  if (C == 3) { delete letters[2]; }

  if ((A == 0 || A == 3) && (B == 0 || B == 3) && (C == 0 || C == 3)) {
    randomletter = Math.floor(Math.random() * (letters.length));
    if (randomletter == undefined) {
      do {
        randomletter = Math.floor(Math.random() * (letters.length));
      } while(randomletter != undefined)
    }
    document.getElementById('text').innerHTML = letters[randomletter];
  }
}
#green {
  height: 20px;
  width: 20px;
  background: green;
}

#text {
  height: 200px;
  width: 200px;
  background: yellow;
}

0 个答案:

没有答案