首页 > 解决方案 > 当这个循环运行时,最终数组只占最后一次运行,而不是全部。我怎样才能解决这个问题?

问题描述

我正在构建一个数组,在多次抽奖过程中跟踪从 1 到 80 的每 2 个数字对。我跟踪抽奖号码以及这对出现的频率。当我运行循环时,它似乎只跟踪了最近一次抽奖的结果,而不是更大的列表。当它通过循环时,我怎样才能让它更新?

我是 Javascript 的新手。我只学了一个星期。我学到的大部分东西都是通过搜索我想做的任何复制和粘贴来实现的。

  var myarray = new Array()
  var final = {
    draws: new Array(),
    fq: 0
  }
    for (f=1;f<=80;f++){
      for (s=1;s<=80;s++){
          if (f < s){
            if (results.Picks[(f-1)].includes(f)){
              if (results.Picks[(f-1)].includes(s)){
                final.draws.push(results.Num[(f-1)])
                final.fq++
                myarray.push(final)
              }
              else {
                myarray.push(final)
              }
            }
            else {
              myarray.push(final)
            }
            final = {
              draws: new Array(),
              fq: 0
            }
          }
      }
    }
  console.log(myarray)

我正在寻找的是一种在设定的抽奖次数上跟踪每个数字配对的方法,但我似乎只得到最近一次抽奖的结果。预期输出是一个 myarray(包含 3160 个条目,一个对应于 1-80 的每对数字),并且在 myarray 的每个条目(对于每个数字对)中,应该有一个它出现的抽奖号码列表以及一个出现频率作为一个整数,表示它在最后一次抽奖中出现的次数。

我尝试在开始时添加一个循环来运行整个循环的次数与绘制次数一样多,但我真的不知道如何将结果数组的值加在一起。我最终得到 100 个数组,每个数组长度为 3160 个条目。我想要一个组合所有这些数字的数组。

//loop beginning
  var combine=new Array();
  for (i=0;i<results.Num.length;i++){

//loop ending
  combine.push(myarray)
  }
console.log(combine)

标签: javascriptarraysloopsobjectfor-loop

解决方案


推荐阅读