Как продолжить цикл for

У меня есть метод array.Prototype.sameStructureAs(arr), который проверяет структуру вложенности массивов, но у меня возникла проблема с проверкой, если первый элемент массива это просто число.

Вот мой код:

Array.prototype.sameStructureAs = function (other) {
if ( Array.isArray(this)&& Array.isArray(other) ) {//Проверка являются ли элементы массивами
    if ( this.length === other.length) {
        for (let i=0; i<this.length; i++) {
            if ( (Array.isArray(this[i]) && Array.isArray(other[i])) && (this[i].length===other[i].length))//Проверка являются ли первые элементы массивов массивами и проверка их длин// {
                for (let j=0; j<this[i].length;j++) {
                    if (Array.isArray(this[i][j]) && Array.isArray(other[i][j])) {
                        return true
                    } else return false
                }
            }if ( ( Array.isArray(this[i]) && !Array.isArray(other[i]) ) || ( !Array.isArray(this[i]) && Array.isArray(other[i]) ) ) {
                return false
        } else if (!Array.isArray(this[i]) && !Array.isArray(other[i])) {
            return true
        }
        }
    }
}

};

По задумке последняя строка должна возвращать true если все элементы массива - не массивы, но в моей случае так не работает console.log([1, [1, 1]].sameStructureAs([2,[2]])) возвращает true, хотя должен быть false. Как мне сделать так, чтобы после проверки первого элемента, цикл продолжался дальше? Надеюсь понятно объяснил


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

Автор решения: Алексей Шиманский

Полагаю должно быть что-то типа такого:

for (let i=0; i<this.length; i++) {
    if (ЕСЛИ ЭЛЕМЕНТ НЕ МАССИВ)) {
        return false;
    }
}

return true;
→ Ссылка