Reputation: 937
The issue with my code is that it should return 26x26 matrix filled with a-z on every row, although I tried many ways to initialize or fill the matrix, I always got error or matrix filled with empty strings(current code state).
Can somebody help me? In other words I need function fill2DMatrix() to return matrix where every row contains letters from initArray, so far it doesn't change values and stays as empty 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>
Upvotes: 2
Views: 82
Reputation: 5123
You already have a array of 26 alphabets. All you need to do is loop it 26 times into a new array.
Try this -
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);
Upvotes: 0
Reputation: 147
Please Try like this.
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;
}
Upvotes: 1