我的代码存在的问题是,它应该返回每行用az填充的26x26矩阵,尽管我尝试了许多初始化或填充矩阵的方法,但我总是遇到错误或用空字符串填充的矩阵(当前代码状态)。
有人可以帮我吗?换句话说,我需要函数fill2DMatrix()来返回矩阵,其中每一行都包含来自initArray的字母,到目前为止,它不会更改值并保持为空Array
<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>
答案 0 :(得分:1)
请尝试这样。
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;
}
答案 1 :(得分:0)
您已经有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);