Показать сообщение отдельно
  #21 (permalink)  
Старый 23.12.2013, 23:00
Новичок на форуме
Отправить личное сообщение для SWin Посмотреть профиль Найти все сообщения от SWin
 
Регистрация: 03.12.2013
Сообщений: 8

danik.js, бы вы вкратце рассказать о порядке выполнения кода.
Моих более чем скромных знаний JS не хватает.

Насколько я понимаю при нахождении совпадающего элемента массива
a1[j] === element вложенный цикл прерываеться командой break, при этом found = true и выполнениние функции продолжается во внешнем цикле со строки for (var i = 0; i < a2.length; i++).
При этом значение found снова становиться false и дальше снова переходим во внутренний цикл и так по кругу.
Правильно?
Что происходит дальше. Не совсем понятны строки ниже 15-ой.

Сообщение от danik.js Посмотреть сообщение
var a1=[1,2,3,4,5];
var a2=[2,4,4,2];

alert(isSubset(a1, a2));

function isSubset(a1, a2) {
    for (var i = 0; i < a2.length; i++) {
        var element = a2[i];
        var found = false;
        for (var j = 0; j < a1.length; j++) {
            if (a1[j] === element) {
                found = true;
                break;
            }
        }
        if (!found) {
            return false;
        }
    }
    return true;
}
Ответить с цитированием