07.11.2018, 11:15
|
Профессор
|
|
Регистрация: 12.08.2016
Сообщений: 299
|
|
проверка совпадений
Коллеги, доброго времени суток:
есть массивы:
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.
Заранее благодарю.
|
|
07.11.2018, 11:25
|
|
Профессор
|
|
Регистрация: 08.11.2017
Сообщений: 642
|
|
<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>
Последний раз редактировалось SuperZen, 07.11.2018 в 11:34.
|
|
07.11.2018, 11:31
|
Профессор
|
|
Регистрация: 12.08.2016
Сообщений: 299
|
|
SuperZen, спасибо за помощь))))
|
|
07.11.2018, 12:17
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,114
|
|
или так
// если надо чтобы все три ответа были в target
result = combs.filter(comb => comb.every(c => targets.includes(c)))
|
|
07.11.2018, 12:26
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Ничего не понимаю!
Если
Сообщение от Роман Андреевич
|
combs - это массив правильных ответов из билетов
|
то что такое targets? Это ответы? ответы на что?
Насколько можно понять, в каждом билете по 3 вопроса.
Правильные ответы на первый билет - 0 на первый вопрос, 1 на второй, 2 на третий.
Какие совпадения combs и targets надо проверять?
|
|
07.11.2018, 18:22
|
Профессор
|
|
Регистрация: 12.08.2016
Сообщений: 299
|
|
Dilettante_Pro, targets это ответы, выбранные пользователем, combs это массив в котором каждый массив это правильные варианты ответов, нужно записать в result на сколько билетов пользователь ответил правильно. Примерно так
|
|
08.11.2018, 07:26
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Роман Андреевич,
Вы абсолютно не ответили на мои вопросы. Прочтите, пожалуйста, еще раз повнимательнее и попробуйте ответить снова
|
|
|
|