Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript how to create an array of arrays

Could somebody please help me to create an array of array.I have a matrix calculator and I want to create an array of arrays ('smaller').How can I do it?The functiions create2Darray and calculateDet are working ok,so now problem with them.Would be really grateful for the help.I need an array of these arrays (main matrix's minors) to calculate their determinants and calculate the inverted matrix Here is the HTML:

<div id = "table4">
<div class = "calcHeader">Macierz odwrotna [3x3]</div>
<form id = "row1"><!--first row-->
    <input type = "text" class = "det3"/>
    <input type = "text" class = "det3"/>
    <input type = "text" class = "det3"/>
 </form>
 <form id = "row2"><!--second row-->
    <input type = "text" class = "det3"/>
    <input type = "text" class = "det3"/>
    <input type = "text" class = "det3"/>
</form>
<form id = "row3"><!--third row-->
    <input type = "text" class = "det3"/>
    <input type = "text" class = "det3"/>
    <input type = "text" class = "det3"/>
</form>
<div class = "count" onclick="invertMat('det3')"><a href = "#">Wylicz</a></div>
</div>

Javascript

function invertMat(matrixClass) {
    var matrix = create2Darray(matrixClass);
    var det = calculateDet(matrix);
    //alert(det);
    var invMat = new Array();
    for (var i = 0; i < matrix.length; i++) {
        invMat[i] = new Array();
        for (var j = 0; j < matrix.length; j++) {
            invMat[i][j] = 0;
        }
    }
    if (matrix.length == 2) {
        invMat[0][0] = 1 / det * matrix[1][1];
        invMat[1][0] = 1 / det * (-matrix[1][0]);
        invMat[0][1] = 1 / det * (-matrix[0][1]);
        invMat[1][1] = 1 / det * matrix[0][0];
        alert(invMat);
    } else if (matrix.length == 3) {
        //var smaller = new Array();//creating an empty array for a matrix minor
        for (var i = 0; i < matrix.length; i++) {
            var smaller = new Array(matrix.length - 1);
            for (h = 0; h < smaller.length; h++) {
                smaller[h] = new Array(matrix.length - 1);
            }
            for (a = 1; a < matrix.length; a++) {
                for (b = 0; b < matrix.length; b++) {
                    if (b < i) {
                        smaller[a - 1][b] = matrix[a][b];
                    } else if (b > i) {
                        smaller[a - 1][b - 1] = matrix[a][b];
                    }
                }
            }
        }
    }
}
like image 625
Andriy Haydash Avatar asked Jan 25 '26 13:01

Andriy Haydash


1 Answers

Try Like this Fiddle

var array1 = new Array();

array1.push(1);
array1.push(2);


var array2 = new Array();

array2.push(3);
array2.push(4);

var array3 = new Array();
array3.push(array1);
array3.push(array2);

console.log(array3[0]);
console.log(array3[1]);
like image 179
NullPointerException Avatar answered Jan 28 '26 03:01

NullPointerException



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!