有人能看到这个javascript代码中的错误吗?填充二维阵列
我的代码的问题是,它应该在每一行返回26x26矩阵并填充a-z,尽管我尝试了许多方法来初始化或填充矩阵,但我总是得到错误或矩阵填充了空字符串(当前代码状态) 有人能帮我吗?换句话说,我需要函数fill2DMatrix()来返回矩阵,其中每一行都包含initArray中的字母,到目前为止,它不会改变值并保持为空数组有人能看到这个javascript代码中的错误吗?填充二维阵列,javascript,arrays,web,Javascript,Arrays,Web,我的代码的问题是,它应该在每一行返回26x26矩阵并填充a-z,尽管我尝试了许多方法来初始化或填充矩阵,但我总是得到错误或矩阵填充了空字符串(当前代码状态) 有人能帮我吗?换句话说,我需要函数fill2DMatrix()来返回矩阵,其中每一行都包含initArray中的字母,到目前为止,它不会改变值并保持为空数组 <script> var rawInput = document.getElementById("input"); var initArray = ['A'
<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创建算法,我知道,但每个人都是通过尝试学习的,没有人生来是无所不知的。所以无需指出,我一看到答案就意识到了这一点(你的答案没有任何好处)这会起作用,但遗憾的是,我无法在未来的代码升级中使用它,但感谢您的回复:)