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.
CodePudding user response:
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));
CodePudding user response:
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));