function isTidy(number) {
let str = number.toString();
for (let i = 1; i < str.length; i++) {
if (str.charAt(i) < str.charAt(i + 1)) {
return true;
}
if (str.charAt(i) > str.charAt(i + 1)) {
return false;
}
if (str.charAt(i) == str.charAt(i + 1)) {
return false;
}
}
}
console.log(isTidy(135587));
How it have to work:
isTidy(12) ==> true
The numbers { 1, 2 } are in non-decreasing sequence, i.e. 1 <= 2.
isTidy(32) ==> false
The numbers { 3, 2 } are in descending order, that is, 3 > 2.
isTidy(1024) ==> false
The numbers { 1, 0, 2, 4 } are in descending order because 0 < 1.
isTidy(3445) ==> true
The numbers { 3, 4, 4, 5 } are in non-decreasing sequence, because 4 <= 4.
isTidy(13579) ==> true
The numbers { 1, 3, 5, 7, 9} are in ascending order.
You need to check the previous digit as well and exit early if the number are not equal or increasing.
At the end return true.
function isTidy(number) {
let str = number.toString();
for (let i = 1; i < str.length; i++) {
if (str[i - 1] > str[i]) return false;
}
return true;
}
console.log(isTidy(135578));
console.log(isTidy(135587));
function isTidy(number) {
let str = number.toString();
for (let i = 1; i < str.length; i++) {
let nextNumber = str.charAt(i + 1);
if (nextNumber != "" && str.charAt(i) > nextNumber) return false;
}
return true;
}
console.log(isTidy(135587));