Помогите плиз с задачей! [найти какому квадранту принадлежит точка]

Представим ось координат x и y, визуально можно поделить ее на 4 области:
Когда x меньше 0, и у больше 0 - 1-я четверть.
Когда x больше 0, и у больше 0 - 2-я четверть.
Когда x меньше 0, и у меньше 0 - 3-я четверть.
Когда x больше 0, и у меньше 0 - 4-я четверть.

Необходимо создать функцию findQuarter, которая принимает два числовых аргумента х и у (это координаты точки).
функция выводит в консоль результат к какой четверти принадлежит точка с координатами х,у.

При этом точка может находится на оси координат если у или x равны 0 в данном случае функция выведет в консоль, что “Точка принадлежит оси координат”;

Для вывода результата из функции используем console.log(“ваш результат”);

Примеры вызова: findQuarter(-2, 4);
findQuarter(0, 3);

Примеры вывода: “Точка принадлежит 1-й четверти”

                           "Точка принадлежит оси координат"

Дополнительно: Постарайтесь уменьшить количество одинаковых проверок.

function findQuarter(x, y) {
if (x === 0 || y === 0) {
return “Точка принадлежит оси координат”;
} else if (x > 0 && y > 0) {
return “Точка принадлежит 2-й четверти”;
} else if (x > 0 && y < 0) {
return “Точка принадлежит 4-й четверти”
} else if (x < 0 && y > 0) {
return “Точка принадлежит 1-й четверти”
} else {
return “Точка принадлежит 3-й четверти”
}
}

Спасибо огромное. Я решил её вот так :

function findQuarter(x,y) {
if (x < 0, y > 0){
console.log(“точка находится в 1-вой четверти координатной плоскости.”);}
else if (x > 0, y > 0){
console.log(“точка находится в 2-рой четверти координатной плоскости.”);}
else if (x < 0, y < 0){
console.log(“точка находится в 3-ей четверти координатной плоскости.”);}
else if (x > 0, y < 0){
console.log(“точка находится в 4-ой четверти координатной плоскости.”);}
else {console.log(“Точка принадлежит оси координат.”);}
};
findQuarter(0, 0);
findQuarter(5, 3);

Но почему-то не выводит в консоль вторую и четвёртую плоскости((((

А разве в операторе if в скобках возможна запятая между частями условия?

Кратко. Да.

Развернуто. В скобках в условии можно поставить любое выражение (expression в английской терминологии). Важно понимать что любое выражение вычисляемо в некоторое значение. Могу еще расписать отдельно про выражения и значения если у кого будет запрос.

Выражение это любой валидный выполняющийся код. Например это валидный (но бессмысленный) js:

if (function main() {}) {
	console.log(100500)
}

выражение в скобках вычисляется в объект функции, булевый эквивалент которого всегда true поэтому тело условия будет всегда выполняться.

Является ли x < 0, y > 0 валидным выражением? Да. Оператор , (обрати внимание что операторы и выражения это не одно и тоже) берет выражение слева от запятой, вычисляет его, берет выражение справа вычисляет его и вычисляется (этому будет равен результат выражения если его залогировать или записать в перменную) в результат вычисления правого выражения.

Моделирует ли код x < 0, y > 0 то что имел в виду автор? Скорее всего нет. Предположу что автор хотел описать условие “x меньше 0 и y больше 0”. false , true вычислится в true, и true, false вычислится в false. В общем виде выражение X, Y всегда будет вычисляться в Y.

А вот && делает то что надо: false && true вычисляется в false и true && false вычисляется в false.

Так как оператор , всегда вычисляется в значение правого выражения, то в коде из примера в условиях можно убрать все выражения до запятой и ничего не изменится.

Спасибо! Не знал, но очень интересно!