有人能看到这个javascript代码中的错误吗?填充二维阵列

有人能看到这个javascript代码中的错误吗?填充二维阵列,javascript,arrays,web,Javascript,Arrays,Web,我的代码的问题是,它应该在每一行返回26x26矩阵并填充a-z,尽管我尝试了许多方法来初始化或填充矩阵,但我总是得到错误或矩阵填充了空字符串(当前代码状态) 有人能帮我吗?换句话说,我需要函数fill2DMatrix()来返回矩阵,其中每一行都包含initArray中的字母,到目前为止,它不会改变值并保持为空数组 <script> var rawInput = document.getElementById("input"); var initArray = ['A'

我的代码的问题是,它应该在每一行返回26x26矩阵并填充a-z,尽管我尝试了许多方法来初始化或填充矩阵,但我总是得到错误或矩阵填充了空字符串(当前代码状态)

有人能帮我吗?换句话说,我需要函数fill2DMatrix()来返回矩阵,其中每一行都包含initArray中的字母,到目前为止,它不会改变值并保持为空数组

<script>
    var rawInput = document.getElementById("input");
    var initArray = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];

    /* Returns filled alphabet 2D array */
    function init2DMatrix() {
        var twoDimArr = [];

        for (i = 0; i < 26; i++) {
            twoDimArr[i] = "";
            for(j = 0; j < 26; j++){
                twoDimArr[i][j] = "";
            }
        }
        return twoDimArr;
    }

    function fill2DMatrix() {
        var counter = 0;
        var blankSpacesArr = [];
        blankSpacesArr = init2DMatrix();

        for (var i = 0; i < 26; i++) {
            for(var j = 0; j < 26; j++){
                blankSpacesArr[i][j] = initArray[j];
            }
        }
        return blankSpacesArr;
    }

    function print() {
        var beaufortMatrix = fill2DMatrix();
        for (i = 0; i < initArray.length; i++) {

                document.getElementById("output").innerHTML += beaufortMatrix[i] + "<br>";

        }
    }

</script>

var rawInput=document.getElementById(“输入”);
var initArray=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
/*返回填充字母2D数组*/
函数init2DMatrix(){
var twodimar=[];
对于(i=0;i<26;i++){
twoDimArr[i]=“”;
对于(j=0;j<26;j++){
twoDimArr[i][j]=“”;
}
}
返回twoDimArr;
}
函数fill2DMatrix(){
var计数器=0;
var blankSpacesArr=[];
blankSpacesArr=init2DMatrix();
对于(变量i=0;i<26;i++){
对于(var j=0;j<26;j++){
blankSpacesArr[i][j]=initArray[j];
}
}
返回空格;
}
函数打印(){
var beaufortMatrix=fill2DMatrix();
对于(i=0;i”;
}
}
请像这样尝试

function init2DMatrix() 
{
  var arr = [];    
  for (var i=0; i<26; i++) {
    arr[i] = [];
  }    
  return arr;
 }

function fill2DMatrix() {    
    var blankSpacesArr = [];    
    blankSpacesArr = init2DMatrix();    
    for (var i = 0; i < 26; i++) {    
        for(var j = 0; j < 26; j++){    
            blankSpacesArr[i][j] = initArray[j];    
        }    
    }

    return blankSpacesArr;
}
函数init2DMatrix()
{
var-arr=[];

对于(var i=0;i您已经有了一个包含26个字母的数组。您所需要做的就是将它循环26次到一个新数组中

试试这个-

var initArray = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
    var myarray=new Array(26)

    for (i=0; i <26; i++) {
        myarray[i]=new Array(initArray);
    }
    console.log(myarray);
var initArray=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
var myarray=新数组(26)

对于(i=0;这就是你想要做的吗?如果是这样,这需要更少的迭代:请解释你的代码做什么,以及为什么它是一个改进。很明显,这个问题有这么多错误,只需创建最小的代码就可以更容易地完成任务。非常感谢@Shildra,这正是我需要的。对于其他人,我将我需要将每一行移到一边,同时在二维数组中保留易于访问的值,因为我正在为Beaufort Ciphernelaos Vergis创建算法,我知道,但每个人都是通过尝试学习的,没有人生来是无所不知的。所以无需指出,我一看到答案就意识到了这一点(你的答案没有任何好处)这会起作用,但遗憾的是,我无法在未来的代码升级中使用它,但感谢您的回复:)