Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   проверка совпадений (https://javascript.ru/forum/misc/75797-proverka-sovpadenijj.html)

Роман Андреевич 07.11.2018 11:15

проверка совпадений
 
Коллеги, доброго времени суток:
есть массивы:
let combs = [
			[0,1,2],
			[3,4,5],
			[6,7,8],
			[0,3,6],
			[1,4,7],
			[2,5,8],
			[0,4,8],
			[2,4,6]
		];
let targets = [1,2,0,5,6];
let result = [];


Первый массив combs - это массив правильных ответов из билетов. Ответов и билетов может быть сколько угодно .

Как проверить есть ли в массиве targets совпадения с комбинациями из combo????? Если есть совпадение то то сохранить совпадения в result.

Заранее благодарю.

SuperZen 07.11.2018 11:25

<script>
  let combs = [
    [0, 1, 2],
    [3, 4, 5],
    [6, 7, 8],
    [0, 3, 6],
    [1, 4, 7],
    [2, 5, 8],
    [0, 4, 8],
    [2, 4, 6]
  ];
  let targets = [1, 2, 0, 5, 6];
  let result = [];
  // если надо чтобы все три ответа были в target
  result = combs.filter(comb => comb.filter(c => targets.includes(c)).length === comb.length)
  // если любой из ответов в target
  // result = combs.filter(comb => comb.filter(c => targets.includes(c)).length)
  console.log(result)
</script>

Роман Андреевич 07.11.2018 11:31

SuperZen, спасибо за помощь))))

рони 07.11.2018 12:17

:) или так
// если надо чтобы все три ответа были в target
  result = combs.filter(comb => comb.every(c => targets.includes(c)))

Dilettante_Pro 07.11.2018 12:26

Ничего не понимаю!
Если
Цитата:

Сообщение от Роман Андреевич
combs - это массив правильных ответов из билетов

то что такое targets? Это ответы? ответы на что?
Насколько можно понять, в каждом билете по 3 вопроса.
Правильные ответы на первый билет - 0 на первый вопрос, 1 на второй, 2 на третий.
Какие совпадения combs и targets надо проверять?

Роман Андреевич 07.11.2018 18:22

Dilettante_Pro, targets это ответы, выбранные пользователем, combs это массив в котором каждый массив это правильные варианты ответов, нужно записать в result на сколько билетов пользователь ответил правильно. Примерно так

Dilettante_Pro 08.11.2018 07:26

Роман Андреевич,
Вы абсолютно не ответили на мои вопросы. Прочтите, пожалуйста, еще раз повнимательнее и попробуйте ответить снова


Часовой пояс GMT +3, время: 15:17.