JSFiddle - React, Tailwind, and code Playground

by LuckyCat

JavaScript

/*
Проверить является ли один массив подмножеством второго

Дописать функцию contains(where, what). Если все элементы массива what содержатся в массиве where, функция должна возвращать true. Пустой массив является подмножеством любого массива. Порядок вхождения элементов в массив не имеет значения. Примеры:

contains([1,2,3], [3,2]); // true
contains([1,2,3], [3,2,1,2,3]); // true
*/
function contains(where, what) {

}


function contains(where, what){
    for(var i=0; i<what.length; i++){
        if(where.indexOf(what[i]) == -1) return false;
    }
    return true;
}

function contains(where, what) {
    if (!what) { // условие #1
        return true;
    }
    for (var i = 0; i < what.length; i++) {
        for (var j = 0; j < where.length; j++) {
             if (what[i] == where[j]) { // вообще есть indexOf, но непонятно, под какие платформы это пишется, так что по старинке
                 break;
             }
             if (j === where.length - 1) {
                 // мы дошли до конца массива, и так и не нашли вхождение - значит, у нас есть элемент, который не входит в where, и нужно вернуть false
                 return false;
             }
        }
    }
    // ни для одного из элементов не сработал return false, а значит, все они найдены
    return true;
}