Твоя первая ошибка в том, что ты думаешь как человек. Вы думаете, что «когда пример синий или красный», поэтому вы пишете:
if ( example === 'blue' || 'red'){}
Вы должны проверить два раза:
if ( example === 'blue' || example === 'red'){}
Вторая ошибка - использование ИЛИ (||
) и И (and
). Даже если ваш текущий код пропустит первую ошибку, теперь у вас есть следующее:
if ((one === 'blue' || one === 'red') && (two === 'red' || two === 'blue'))
Это было бы неоднозначно. Если оба красные или оба синие, это также будет совпадать. У вас переключены И и ИЛИ, это должно быть:
if (one === 'blue' && two === 'red') || (one === 'red' && two === 'blue')
Вы также часто повторяете себя, этот код не поддерживается, если у вас намного больше цветов. Я предлагаю вам создать небольшую функцию для проверки, а затем использовать ее:
function isCombination(one, two, color1, color2){
return (one === color1 && two === color2) || (one === color2 && two === color1);
}
function resultColorFunction() {
if (isCombination(colorSquareOne, colorSquareTwo, 'blue', 'red') {
resultColor = purple;
}
else if (isCombination(colorSquareOne, colorSquareTwo, 'blue', 'yellow') {
resultColor = green;
}
else if (isCombination(colorSquareOne, colorSquareTwo, 'red', 'yellow') {
resultColor = orange;
}
show();
}