Попытка создать функцию для проверки длинного числа (т. е. каждая цифра меньше или равна цифре справа от нее, например 123, 059 и т. д.).
Следующий код является проблемой:
const n = parseInt(readline());
if (n.toString().length === 1)
console.log('true');
else
{
var z = n.toString().split('');
console.log(z.reduce((a, b) => b > a));
}
Этот тест не пройден: 01223047 (возвращает true, когда должен возвращать false).
Он работал во многих других тестах, но не в этом значении. Не должен ли reduce проверять каждую пару и возвращать true/false? Если есть одна ложь, она должна вернуть ложь, верно? Я неправильно использую сокращение? Есть ли другая функция, которую я мог бы использовать для сокращения этого теста вместо написания цикла?
01223047
- это337447
как целое число, вам нужно иметьn
в виде строки и анализировать их в int в вашей функции сокращения - person George   schedule 18.03.2019readline
только для того, чтобы затем неоднократно преобразовывать ее обратно в строку... Это особенно странно, если в одном из ваших примеров есть ведущая цифра 0, поскольку при этом удаляется ведущая цифра. - person T.J. Crowder   schedule 18.03.2019