Определите, является ли массив в 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
Также опубликовано здесь
Оригинал