Javascript, подбор параметров для функции

311
07 ноября 2017, 00:11

Всем доброго времени суток. Дана функция:

function compare(a, b, c) {
   return a == b && b == c && a != c;
}   

Нужно вернуть массив с набором таких параметров что бы при вызове эта функция вернула true.

compare(values[0], values[1], values[2]) === true;//OK

Пытался найти решение с помощью null, пока что без успехов

Answer 1

Одним из решений может быть следующий массив

["0",0,""]

Как это работает?

При сравнении с помощью оператора == происходит приведение типов, если типы операндов отличаются. Подробнее в соответствующем ответе

Рассмотрим отдельные сравнения:

  1. "0" == 0 - по спецификации, в этом случае строка "0" будет приведена к числу, и сравнение 0==0 даст true

  2. 0=="" - по той же спецификации, пустая строка, при приведении к числу соответствует 0, следовательно опять получается 0==0

  3. "0" != "" - типы операндов одинаковые, приведение не используется, строки действительно не равны. поэтому результат true.

function compare(a, b, c) { 
  return a == b && b == c && a != c; 
} 
 
var arr = ["0", 0, ""]; 
console.log(compare(arr[0], arr[1], arr[2]));

READ ALSO
Как сохранить значение присвоеного style.display='inline' для block1-block7 function Selected(a) { var label = a.value; после перезагрузки?

Как сохранить значение присвоеного style.display='inline' для block1-block7 function Selected(a) { var label = a.value; после перезагрузки?

Добрый день помогите решить задачу необходимо после перезагрузки страницы сохранить значение function Selected(a) { var label = avalue;

331
Не верно работает ширина браузера

Не верно работает ширина браузера

Почему мне выдает половину ширины браузера

306
Переадресация NGINX

Переадресация NGINX

Добрый деньПодскажите пожалуйста, как можно переадресовать GET запрос отправленный как конкретный адрес, на конкретный IP адрес? Например,...

238
ESlint no-unused-vars

ESlint no-unused-vars

Здравствуйте

454