Выход - false; Должно быть - true;

119
08 сентября 2019, 23:10

Есть код:

let x = 1;
let y = 0;
if([x, y] == [1, 0] || [x, y] == [0, 1]){
    console.log("s");
}

B if должно быть true, но консоль говорит , что false. Почему?

Answer 1

Не должно.

Потому что сравнение == массивов (ссылочного типа данных) сравнивает ссылки, а они разные.

let x = 1; 
let y = 0; 
 
console.log([x, y] == [1, 0]); 
console.log([x, y] == [0, 1]); 
 
if([x, y] == [1, 0] || [x, y] == [0, 1]){ 
    console.log("s"); 
}

READ ALSO
Как можно увеличить значение символа в JS

Как можно увеличить значение символа в JS

Можно ли как, допустим, в C++ применить какие-то операции с символом, чтобы он шёл дальше по алфавиту?

116
Redux вывод нескольких state вызывает undefined

Redux вывод нескольких state вызывает undefined

есть хранилище и один reducer При вызове 2 action SHOW_POSTS и SHOW_TODOS, post выводятся в консоль а todos выводит undefined, я понимаю что state переопределяет объект,...

126
Angular 6 и Yandex Map API

Angular 6 и Yandex Map API

хочу в темплейте у балуна карты вызвать (click)="open()" но метод open не вызываетсяВ чем причина?

126
Скрипт генерация случайных фраз

Скрипт генерация случайных фраз

Генерация случайных слов, с задержкой по времени, где фраза "НА САЙТЕ ТОЛЬКО" видна изначально, а после счетчика рондомно показывается одна...

127