Console.log — почему выводится только последние значение итерации цикла for?

Есть небольшая программа, реализующая вычислительный конвейер. То есть сравниваются два массива на вхождение: если первый входит во второй, то из него берутся все значения и помещаются во второй, иначе второй сдвигается влево на один символ. И так движется до бесконечности, в моем случае 10 повторений.

Мне нужно, чтобы после каждой итерации выводилось значение нового массива. Когда я прописываю в цикле console.log(arrayTwo); он каждую итерацию выводит только одно значение массива, хотя он постоянно изменяется.

В чем проблема? Также был бы благодарен, если бы показали как можно улучшить код. Спасибо!

let array = [
    [1,0,0,1,0,0,0,1],
    [0,0,1,0,0,1,1,0],
    [0,1,0,0,1,0,0,0]
];
let arrayTwo = [
    [1,0,0,1,0,0,0,1],
    [0,0,1,0,0,1,1,0],
    [0,1,0,0,1,0,0,0]
];
let sum = 0;
let x = 0;
let y = 0;
while (x < 10){
    for (let j = 0; j < array.length; j++) {
        for (let i = 0; i < 8; i++)
            if ((array[j][i] == 1 && arrayTwo[j][i] == 0) || (array[j][i] == 0 && arrayTwo[j][i] == 1) || (array[j][i] == 0 && arrayTwo[j][i] == 0))
                sum = sum + 1;
        if (sum != 8 )
            y = y + 1;
        sum = 0;
    }

    if (y > 0) 
        for (let j = 0; j < array.length; j++) {
            arrayTwo[j].shift();
            arrayTwo[j].push(0);
        }
    else
        for (let j = 0; j < array.length; j++) 
            for (let i = 0; i < 8; i++)
                    if (array[j][i] == 1 && arrayTwo[j][i] == 0)
                        arrayTwo[j][i] = 1;
    y = 0;
    x = x +1;
    console.log(arrayTwo);
}


Ответы (0 шт):