【发布时间】:2018-12-17 18:00:30
【问题描述】:
所以,我正在尝试创建一个函数来确定一个数字是否“整齐”。 (即给定整数中的每个数字都大于它之前的数字。)
我已经成功地将整数转换为数组。但是当我遍历它时,我没有得到想要的true 和false,如果不是这样。我想知道我做错了什么?
function tidyNumber(n){
var arr = n.toString(10).split("").map(function(t){return parseInt(t)});
let tof;
if(arr.length == 1){
return true;
}
for(i = 0; i < arr.length; i++){
if(arr[i] <= arr[i+1]){
tof = true;
} else if(arr[i] > arr[i+1]){
tof = false;
}
}
return tof;
}
【问题讨论】:
-
当
i为arr.length - 1时,比较会将arr[i]与undefined进行比较。 -
arr[i] > arr[i+1]时应该立即返回 false,因为使用您的算法,1324的数字会很整齐
标签: javascript loops for-loop if-statement