Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的比较数组_Javascript - Fatal编程技术网

javascript中的比较数组

javascript中的比较数组,javascript,Javascript,我想做的是一份乐透游戏的清单,这对我的家人来说是一种宾果游戏。 我将首先尝试解释检查表的作用,以及为什么,请原谅我的技术英语,我是荷兰人,所以有些单词可能是错误的:) 我有一张名单,上面有几个玩乐透/宾果游戏的人。所有玩家选择10个数字,每周有一次6个数字的平局,我试图一步一步地解释代码要做什么 应检查1-10个人的号码 每周增加2-6个数字,并与人数进行比较。 3-匹配时字体应为绿色。 4-字体不匹配时应保持红色 这是我目前掌握的代码 下面的代码工作得很好,但问题是代码设计用于比较VarA和V

我想做的是一份乐透游戏的清单,这对我的家人来说是一种宾果游戏。 我将首先尝试解释检查表的作用,以及为什么,请原谅我的技术英语,我是荷兰人,所以有些单词可能是错误的:)

我有一张名单,上面有几个玩乐透/宾果游戏的人。所有玩家选择10个数字,每周有一次6个数字的平局,我试图一步一步地解释代码要做什么

应检查1-10个人的号码
每周增加2-6个数字,并与人数进行比较。
3-匹配时字体应为绿色。
4-字体不匹配时应保持红色

这是我目前掌握的代码

下面的代码工作得很好,但问题是代码设计用于比较VarA和VarB,这是一个瓶颈,因为这是一个1对1操作。如果不增加抽签日,我无法增加更多的人

现在我的问题。在不添加像B2这样的抽签日期的情况下,应该如何添加更多的人员(A1、A2、A3等)

我希望这足够清楚。:)


变量a1=[“2”、“3”、“8”、“12”、“23”、“37”、“41”、“45”、“48”]
变量a2=[“2”、“14”、“3”、“12”、“24”、“37”、“41”、“46”、“48”]
变量b1=[“2”、“5”、“11”、“16”、“23”、“45”、“46”];
变量b2=[“1”、“23”、“11”、“14”、“23”、“42”、“46”];
对于(变量i=0;i
”); 文件。写(“+”+“Michael”+”); 对于(变量i=0;i
”); 文件。写(“

”); 文件。写(“+”+“绘制第1天“+”); 文件。写(“
”); 填写(“+”+“Sat 08-08-2009”+”); 文件。写(“

”); 对于(var j=0;j
”); 文件。写(“

”); 文件。写(“+”+“绘图第2天“+”); 文件。写(“
”); 填写(“+”+“Sat 15-08-2009”+”); 文件。写(“

”); 对于(var j=0;j
您应该使用===作为比较运算符

例如,设x=5:

x == 8     // yield false
鉴于:

x == "5"   // yield **true**
===就像说“完全等于”(按值和类型)


以下是我注意到的几件事:

  • 您可以使用数组的数组来存储挑选的号码和中奖号码
  • 您可以创建一些函数来完成重复的工作
  • 从JS呈现的HTML代码格式不正确
使用函数执行重复代码

function checkArray(myValues, winningValues)
{
   for (var i = 0; i< myValues.length; i++) 
   {
      for (var j = 0; j< winningValues.length; j++) 
      {
        if (myValues[i] == winningValues[j]) 
        {
          myValues[i] = "g"+ myValues[i];
        }
      }
   }
}

function displayNumbers(playerName, myNumbers)
{
    document.write("<font color = '#FFFFFF'>" + "<b>" + playerName + " &nbsp&nbsp " + "</b></font>");
    for (var i = 0; i< myNumbers.length; i++) 
    {
       if (myNumbers[i].substr(0,1) == "g") 
       {
          myNumbers[i] = myNumbers[i].substr(1,20);
          document.write("<font color = '#00FF00'>", myNumbers[i] + "</font> &nbsp&nbsp ");
       }
       else
       {
          document.write("<font color = '#FF0000'>", myNumbers[i] + "</font> &nbsp&nbsp ");
       }
    } 
}

// then call like this
checkArray(a1, b1);

当然,你不必同时添加人物和绘画。

我看起来很漂亮,谢谢!我不确定我做的是否正确,但这就是我所拥有的。 但它在FireFox中不起作用

主管部门:

<script language="javascript">

// then call like this
checkValues(a1, b1);

var a = [["2","3","8","12","23", "37", "41", "45", "48"],
     ["2","14","3","12","24", "37", "41", "46", "48"]];

var b = [["2","5", "11","16","23","45", "46"],
     ["1","23", "11","14","23","42", "46"]];

var Players = ["John", "Michael"];

//Add a new player:
Players[2] = "Adam";
a[2] = ["9","3","7","12","23", "37", "40", "45", "24"];

function checkArray(myValues, winningValues)
{
for (var i = 0; i< myValues.length; i++) 
{
  for (var j = 0; j< winningValues.length; j++) 
  {
    if (myValues[i] == winningValues[j]) 
    {
      myValues[i] = "g"+ myValues[i];
    }
  }
}
}

 function displayNumbers(playerName, myNumbers)
{
document.write("<font color = '#FFFFFF'>" + "<b>" + playerName + " &nbsp&nbsp " + "</b></font>");
for (var i = 0; i< myNumbers.length; i++) 
{
   if (myNumbers[i].substr(0,1) == "g") 
   {
      myNumbers[i] = myNumbers[i].substr(1,20);
      document.write("<font color = '#00FF00'>", myNumbers[i] + "</font> &nbsp&nbsp ");
   }
   else
   {
      document.write("<font color = '#FF0000'>", myNumbers[i] + "</font> &nbsp&nbsp ");
    }
  } 
 }

</script>

//那就这样打电话吧
校验值(a1、b1);
变量a=[“2”、“3”、“8”、“12”、“23”、“37”、“41”、“45”、“48”],
["2","14","3","12","24", "37", "41", "46", "48"]];
变量b=[“2”、“5”、“11”、“16”、“23”、“45”、“46”],
["1","23", "11","14","23","42", "46"]];
var Players=[“约翰”、“迈克尔”];
//添加新玩家:
玩家[2]=“亚当”;
[2]=“9”、“3”、“7”、“12”、“23”、“37”、“40”、“45”、“24”];
函数checkArray(myValues、winningValues)
{
对于(var i=0;i
正文部分:

<body onload="checkValues(a1, b1);">

除了像Miky D那样重写代码(重构)以便将数组比较转换为函数外,您还可以使用对象保存中奖号码,从而使比较更有效。请注意,此代码不是最终版本;还有进一步的改进

var guesses = [["2","3","8","12","23", "37", "41", "45", "48"],
               ["2","14","3","12","24", "37", "41", "46", "48"]];
var draws = [ {2:1, 5:1, 11:1, 16:1, 23:1, 45:1, 46:1},
                {1:1, 23:1, 11:1, 14:1, 23:1, 42:1, 46:1}];

function checkArray(guesses, draw) {
    for (var i = 0; i< guesses.length; ++i) {
        if (draw[guesses[i]]) {
            guesses[i] = 'g' + guesses[i];
        }
    }
}
checkArray(guesses[0], draws[1]);
以下是相应的HTML页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <style type="text/css">
      body {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        color: white;
        background-color: #333;
      }
      .picks, .picks * {
        display: inline;
        margin: 0;
        padding: 0;
        list-style-type: none;
      }
      .picks * {
        margin: auto 0.25em;
      }
      #Results .picks * { color: red; }
      .name, .picks .name {
        color: white;
        font-weight: bold;
        margin-right: 0.5em;
      }
      #Results .picked { color: lime; }
      .drawNum, #Draws H3 {
          margin-bottom: 0;
      }
    </style>
    <script type="text/javascript" src="lotto.js"></script>
  </head>
  <body>
    <div id="Results"></div>
    <div id="Draws"></div>
    <script type="text/javascript">
    var players = {John:    [2,  3, 8, 12, 23, 37, 41, 45, 48],
                   Michael: [2, 14, 3, 12, 24, 37, 41, 46, 48]};

    var draws = [ {when: 'Sat 08-08-2009',
                   picks:{2:1, 5:1, 11:1, 16:1, 23:1, 45:1, 46:1}},
                  {when: 'Sat 15-08-2009',
                   picks:{1:1, 23:1, 11:1, 14:1, 23:1, 42:1, 46:1}}];

    for (name in players) {
      printResultsFor(name, draws, 'Results');
    }
    for (var i=0; i<draws.length; ++i) {
      printDraw(i+1, draws[i]);
    }
    </script>
  </body>
</html>

身体{
字体系列:Verdana、Arial、Helvetica、无衬线;
颜色:白色;
背景色:#333;
}
.picks,.picks*{
显示:内联;
保证金:0;
填充:0;
列表样式类型:无;
}
.挑选*{
保证金:自动0.25em;
}
#Results.picks*{color:red;}
.name、.picks.name{
颜色:白色;
字体大小:粗体;
右边距:0.5em;
}
#结果.拾取{颜色:石灰;}
.drawNum,#绘制H3{
页边距底部:0;
}
var玩家={John:[2,3,8,12,23,37,41,45,48],
迈克尔:[2,14,3,12,24,37,41,46,48]};
var draws=[{当:'Sat 08-08-2009',
选择:{2:1,5:1,11:1,16:1,23:1,45:1,46:1},
{wh
<script language="javascript">

// then call like this
checkValues(a1, b1);

var a = [["2","3","8","12","23", "37", "41", "45", "48"],
     ["2","14","3","12","24", "37", "41", "46", "48"]];

var b = [["2","5", "11","16","23","45", "46"],
     ["1","23", "11","14","23","42", "46"]];

var Players = ["John", "Michael"];

//Add a new player:
Players[2] = "Adam";
a[2] = ["9","3","7","12","23", "37", "40", "45", "24"];

function checkArray(myValues, winningValues)
{
for (var i = 0; i< myValues.length; i++) 
{
  for (var j = 0; j< winningValues.length; j++) 
  {
    if (myValues[i] == winningValues[j]) 
    {
      myValues[i] = "g"+ myValues[i];
    }
  }
}
}

 function displayNumbers(playerName, myNumbers)
{
document.write("<font color = '#FFFFFF'>" + "<b>" + playerName + " &nbsp&nbsp " + "</b></font>");
for (var i = 0; i< myNumbers.length; i++) 
{
   if (myNumbers[i].substr(0,1) == "g") 
   {
      myNumbers[i] = myNumbers[i].substr(1,20);
      document.write("<font color = '#00FF00'>", myNumbers[i] + "</font> &nbsp&nbsp ");
   }
   else
   {
      document.write("<font color = '#FF0000'>", myNumbers[i] + "</font> &nbsp&nbsp ");
    }
  } 
 }

</script>
<body onload="checkValues(a1, b1);">
var guesses = [["2","3","8","12","23", "37", "41", "45", "48"],
               ["2","14","3","12","24", "37", "41", "46", "48"]];
var draws = [ {2:1, 5:1, 11:1, 16:1, 23:1, 45:1, 46:1},
                {1:1, 23:1, 11:1, 14:1, 23:1, 42:1, 46:1}];

function checkArray(guesses, draw) {
    for (var i = 0; i< guesses.length; ++i) {
        if (draw[guesses[i]]) {
            guesses[i] = 'g' + guesses[i];
        }
    }
}
checkArray(guesses[0], draws[1]);
function checkArray(guesses, draw) {
    var results = {}
    for (var i = 0; i< guesses.length; ++i) {
        if (draw.picks[guesses[i]]) {
            results[guesses[i]] = 'win';
        } else {
            results[guesses[i]] = 'loss';
        }
    }
    return results;
}
...
document.write('<span class="name">John</span>');
var results = checkArray(guesses[0], draws[1]);
for (var p in results) {
    document.write('<span class="'+results[i]+'">'+p+'</span>');
}
function Result(guesses) {
    for (var i = 0; i< guesses.length; ++i) {
        this[guesses[i]] = '';
    }
}
function checkDraw(guesses, draw, results) {
    for (var i = 0; i< guesses.length; ++i) {
        if (draw.picks[guesses[i]]) {
            results[guesses[i]] = 'picked';
        }
    }
    return results;
}

function appendTo(elt, parent) {
    if (parent) {
        document.getElementById(parent).appendChild(elt);
    } else {
        document.body.appendChild(elt);
    }
}

function printResults(name, results, parent) {
    var resultElt = document.createElement('div');
    resultElt.appendChild(document.createElement('span'));
    resultElt.firstChild.appendChild(document.createTextNode(name));
    resultElt.firstChild.className='name';
    var picks = document.createElement('ol');
    picks.className='picks';
    for (var p in results) {
        picks.appendChild(document.createElement('li'));
        picks.lastChild.appendChild(document.createTextNode(p));
        picks.lastChild.className = results[p];
    }
    resultElt.appendChild(picks);
    appendTo(resultElt, parent);
}

function printResultsFor(name, draws, parent) {
    var player = players[name];
    var results = new Result(player);
    for (var i=0; i<draws.length; ++i) {
        checkDraw(player, draws[i], results);
    }
    printResults(name, results, parent);
}

function printDraw(which, draw, parent) {
    var drawElt = document.createElement('div');
    drawElt.className='draw';
    drawElt.appendChild(document.createElement('h3'));
    drawElt.lastChild.appendChild(document.createTextNode('Draw '+which));
    drawElt.lastChild.className='drawNum';
    drawElt.appendChild(document.createElement('div'));
    drawElt.lastChild.className='date';
    drawElt.lastChild.appendChild(document.createTextNode(draw.when));
    var picks = document.createElement('ol');
    picks.className='picks';
    for (var p in draw.picks) {
        picks.appendChild(document.createElement('li'));
        picks.lastChild.appendChild(document.createTextNode(p));
    }
    drawElt.appendChild(picks);
    appendTo(drawElt, parent);
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <style type="text/css">
      body {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        color: white;
        background-color: #333;
      }
      .picks, .picks * {
        display: inline;
        margin: 0;
        padding: 0;
        list-style-type: none;
      }
      .picks * {
        margin: auto 0.25em;
      }
      #Results .picks * { color: red; }
      .name, .picks .name {
        color: white;
        font-weight: bold;
        margin-right: 0.5em;
      }
      #Results .picked { color: lime; }
      .drawNum, #Draws H3 {
          margin-bottom: 0;
      }
    </style>
    <script type="text/javascript" src="lotto.js"></script>
  </head>
  <body>
    <div id="Results"></div>
    <div id="Draws"></div>
    <script type="text/javascript">
    var players = {John:    [2,  3, 8, 12, 23, 37, 41, 45, 48],
                   Michael: [2, 14, 3, 12, 24, 37, 41, 46, 48]};

    var draws = [ {when: 'Sat 08-08-2009',
                   picks:{2:1, 5:1, 11:1, 16:1, 23:1, 45:1, 46:1}},
                  {when: 'Sat 15-08-2009',
                   picks:{1:1, 23:1, 11:1, 14:1, 23:1, 42:1, 46:1}}];

    for (name in players) {
      printResultsFor(name, draws, 'Results');
    }
    for (var i=0; i<draws.length; ++i) {
      printDraw(i+1, draws[i]);
    }
    </script>
  </body>
</html>