I'm writing some script and so next problem occurred.
I've got multiple functions:
A returns bool, B and C return nothing.
if (A(array1, array2, array3, int1, int2, int3, int4, bool)) {
        B(array1, array2, array3, int1, int2, int3, int4, bool);
    }
B looks like:
B(array1, array2, array3, int1, int2, int3, int4, bool){
    C(array1, array2, array3, int1, int2, int3, int4, bool);
    someCode;
}
C looks like:
C(array1, array2, array3, int1, int2, int3, int4, bool){
    array1 = thisFunctionChangesArrayInside(array1, some, parameters);
    array2 = thisAnotherFunctionChangesArrayInside(array2, some, parameters);
    someCode;
}
Both of thisFunctionChangesArrayInside() and thisAnotherFunctionChangesArrayInside() returns arrays.
Why is it incorrect? (why arrays don't change?)
EDIT:
thisFunctionChangesArrayInside and thisAnotherFunctionChangesArrayInside functions:
function nowaPozycjaKolor(kolor, x1, y1, x2, y2) {
    var pomocniczaKolor = new Array();       //tablica zupełnie pomocnicza
    for (var i = 0; i < 8; i++) {            //ona reprezentuje kolory
        pomocniczaKolor[i] = new Array();
        for (var j = 0; j < 8; j++) {
            pomocniczaKolor[i][j] = kolor[i][j];
        }
    }
    pomocniczaKolor[x2][y2] = pomocniczaKolor[x1][y1];
    pomocniczaKolor[x1][y1] = 0;
    return pomocniczaKolor;
}
function nowaPozycjaFigur(figury, x1, y1, x2, y2) {
    var pomocniczaFigur = new Array();       //tablica zupełnie pomocnicza
    for (var i = 0; i < 8; i++) {            //ona reprezentuje figury
        pomocniczaFigur[i] = new Array();
        for (var j = 0; j < 8; j++) {
            pomocniczaFigur[i][j] = figury[i][j];
        }
    }
    pomocniczaFigur[x2][y2] = pomocniczaFigur[x1][y1];
    pomocniczaFigur[x1][y1] = 0;
    return pomocniczaFigur;
}
NOT SOLUTION as for me:
function nowaPozycjaKolor(kolor, x1, y1, x2, y2) {
    kolor[x2][y2] = kolor[x1][y1];
    kolor[x1][y1] = 0;
    return kolor;
}
function nowaPozycjaFigur(figury, x1, y1, x2, y2) {
    figury[x2][y2] = figury[x1][y1];
    figury[x1][y1] = 0;
    return figury;
}
This almost works as I want to:
function makeNewArray(x) {
        // make copy of array passed in
        var y = x.slice(0);
        // modify the copy
        y[3]=10;
        y[4]=20;
        return y;
    }
    function funkcja(a){
        a = makeNewArray(a);
    }
    var arr = [1,2,3];
    alert(arr);                 // [1,2,3]
    funkcja(arr);
    alert(arr);                 // [1,2,3]   
    alert(makeNewArray(arr));   // [1,2,3,10,20]
    alert(arr);                 // [1,2,3]
    arr = makeNewArray(arr);
    alert(arr);                 // [1,2,3,10,20]
SOLVED:
function makeNewArray(x) {
    // make copy of array passed in
    var y = x.slice(0);
    // modify the copy
    y[3]=10;
    y[4]=20;
    return y;
}
function funkcja(a){
    for(var i=0;i<5;i++){
        a[i] = makeNewArray(a)[i];
        //alert(a[i]);
        }
}
var arr = [1,2,3,4,5];
alert(arr);                 // [1,2,3]
funkcja(arr);
alert(arr);                 // [1,2,3,10,20]   
alert(makeNewArray(arr));   // [1,2,3,10,20]
alert(arr);                 // [1,2,3,10,20]
arr = makeNewArray(arr);
alert(arr);                 // [1,2,3,10,20]
 
     
     
    