Так что я делаю головоломки, чтобы оценить Kaprekar рутины и в первой части, мне нужно проверить, чтобы убедиться, что вход 4 цифры имеет по крайней мере два уникальных цифр, так что я сделал это:Почему этот набор логических операторов работает правильно?
let numArr = num.toString().split("");
if (numArr[0] == numArr[1] && numArr[2] && numArr[3]) {
return 0;
}
Я попытался найти но я продолжаю находить ссылки на операторов короткого замыкания. Я ожидал записать numArr [0] == в каждый блок & &, но, к моему удивлению, он сработал. Может ли кто-нибудь объяснить, почему это возвращает 0 для 3333, но не для 1234? Я предположил, что numArr [2] и numArr [3] просто оценили бы true автоматически.
Строка с ненулевой длиной является правдой. Он не возвращает 0 для 1234, потому что '1' не равен '2'. – doug65536
это тоже должно вернуть 0 для 1123. – vijayst
'if (numArr [0] == numArr [1] && numArr.length> = 4)' будет делать то же самое, что и ваш код. – doug65536