Как проверить наличие нескольких элементов одного массива в другом в js?

Вопрос заключается в следующем => Как можно реализовать проверку рождающегося массива на массивы, заключенные в объекте victory? Например родился массив ['a', 'c', 'f', 'i']. Нужно сделать так, чтобы этот массив сравнился с каждым из массивом объекта victory, и вывел в консоль, что он равен массиву victory.key6

    let victory = {
    key0 : ['a', 'b', 'c'],
    key1 : ['d', 'e', 'f'],
    key2 : ['g', 'h', 'i'],
    key3 : ['a', 'd', 'g'],
    key4 : ['a', 'b', 'c'],
    key5 : ['b', 'e', 'h'],
    key6: ['c', 'f', 'i'],
    key7: ['a', 'e', 'i'],
    key8: ['g', 'e', 'c'], 
} //Здесь хранятся массивы, по которым проходится проверка.
-----------------------------------------------------------------
if (turn == 0) {
                let type = field.getAttribute('data-type');
                gamex.push(type);
                gamex.sort();
                console.log(gamex);
                if (gamex == victory.key0) {
                    console.log('you win');
                }
                turn++;
// Здесь рождается массив, в который постепенно (по нажатию кнопки) добавляется один новый элемент, который является одной из букв [a-i]. 
// Массив может быть примерно таким ['a' ,'b' ,'c', 'f'] 

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

Автор решения: OPTIMUS PRIME

.every( fn ) — берет функцию, вызывает её для каждого элемента массива, и возвращает true только если вызываемая функция тоже на каждом круге возвращала true.

let victory = {
  key0: ['a', 'b', 'c'],
  key1: ['d', 'e', 'f'],
  key2: ['g', 'h', 'i'],
  key3: ['a', 'd', 'g'],
  key4: ['a', 'b', 'c'],
  key5: ['b', 'e', 'h'],
  key6: ['c', 'f', 'i'],
  key7: ['a', 'e', 'i'],
  key8: ['g', 'e', 'c'],
};

console.log( test( ["f", "i", "c", "a"] ) );
console.log( test( ["c", "f", "a"] ) );

function test(arr) {  
  for( let key in victory ) {
    if(  victory[key].every(letter => arr.includes(letter))  ) {
      return true;
    }
  }
  return false;
}

Ну это можно сократить до одной строчки (но надо ли - вопрос):

let victory = {
  key0: ['a', 'b', 'c'],
  key1: ['d', 'e', 'f'],
  key2: ['g', 'h', 'i'],
  key3: ['a', 'd', 'g'],
  key4: ['a', 'b', 'c'],
  key5: ['b', 'e', 'h'],
  key6: ['c', 'f', 'i'],
  key7: ['a', 'e', 'i'],
  key8: ['g', 'e', 'c'],
};

const test = (arr) => Object.values(victory).some(
  victory_keys => victory_keys.every(letter => arr.includes(letter))
);

console.log( test( ["f", "i", "c", "a"] ) );
console.log( test( ["c", "f", "a"] ) );

→ Ссылка