'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