Определите, является ли массив в JavaScript подмножеством другого массива

Определите, является ли массив в JavaScript подмножеством другого массива

14 ноября 2022 г.

Есть много случаев, когда знание того, является ли массив подмножеством другого, может быть весьма полезным, и хотя обычно это сразу очевидно для человеческого глаза, это может быть трудно оценить в коде.

В приведенном ниже коде arr2 является подмножеством arr1, а arr3 — нет.

let arr1 = [ 'a', 'b', 'c' ];
let arr2 = [ 'b', 'c' ];
let arr3 = [ 'c', 'd' ];

Если мы хотим выяснить, является ли массив подмножеством другого массива, лучший способ оценить это — использовать массив всех методов. Этот метод выполняет итерацию по каждому элементу массива и выполняет для него проверку. Если каждый элемент массива пройдет этот тест, то общий метод every вернет значение true.

Для каждой оценки у нас есть «родительский» массив и массив «подмножество», где мы хотим проверить, полностью ли содержится массив «подмножество» в «родительском» массиве.

Чтобы оценить, является ли один массив подмножеством другого, мы можем запустить every для каждого элемента в массиве «подмножество». В функции every мы можем проверить, содержит ли «родительский» массив каждый элемент в массиве «подмножество». Если да, то каждый вернет true. В противном случае возвращается false.

Этого можно легко добиться с помощью функции, подобной показанной ниже: checkSubset вернет true, если subsetArray полностью содержится в родительский массив:

let arr1 = [ 'a', 'b', 'c' ];
let arr2 = [ 'b', 'c' ];
let arr3 = [ 'c', 'd' ];

let checkSubset = (parentArray, subsetArray) => {
    return subsetArray.every((el) => {
        return parentArray.includes(el)
    })
}

checkSubset(arr1, arr2); // returns true
checkSubset(arr1, arr3); // returns false

Также опубликовано здесь


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE