'Insert 1 value in 2d array in javascript
I need some help with my code. I try to insert only one value in each array. I need to fill in the row first and after that, if the row is full then move to the next column. I try to solve this part for a couple of days but I fail. So here is my code
const testData = [1,2,3,4,5,6,7,8,9];
const create2dArray = (row, column) => {
var result = [];
for(let i = 0; i< row; i++){
result[i]= [];
for(let j = 0; j<column; j++){
result[i][j] = [];
for(let e = 0; e < testData.length; e++){
result[i][j] = [testData[e]];
}
}
}
return result;
}
let Column = 5
let Row = 5
filterQuotaData(EnrollmentQuota);
var ground = create2dArray(Column,Row);
console.log(ground);
Suppose the output is :
[1],[2],[3],[4],[5]
[6],[7],[8],[9],[]
[],[],[],[],[]
[],[],[],[],[]
[],[],[],[],[]
instead, I got:
[9],[9],[9],[9],[9]
[9],[9],[9],[9],[9]
[9],[9],[9],[9],[9]
[9],[9],[9],[9],[9]
[9],[9],[9],[9],[9]
I hope someone can help me to solve this problem
Solution 1:[1]
Following code
const testData = [1,2,3,4,5,6,7,8,9];
const create2dArray = (row, column) => {
var result = [];
k = 0
for(let i = 0; i< row; i++){
result[i]= [];
for(let j = 0; j<column; j++){
if(k < testData.length) {
result[i][j] = [testData[k]];
} else {
result[i][j] = [];
}
k++
}
}
return result;
}
let Column = 5
let Row = 5
//filterQuotaData(EnrollmentQuota);
var ground = create2dArray(Column,Row);
console.log(ground);
produces
[
[ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ] ],
[ [ 6 ], [ 7 ], [ 8 ], [ 9 ], [] ],
[ [], [], [], [], [] ],
[ [], [], [], [], [] ],
[ [], [], [], [], [] ]
]
Does it what you need?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | dudung |
