使用length函数返回undefined

时间:2016-11-25 07:16:47

标签: javascript angularjs

我试图检查我的变量是否只有一个长度。

我是这样做的:

var n = new Date();
$scope.h = n.getHours();
$scope.m = n.getMinutes();

console.log($scope.h.length) // returns undefined

if($scope.h.length < 2 && $scope.m.length < 2 ) {
    $scope.hm = $scope.h * 10 + "" + $scope.m * 10;
    console.log($scope.hm);
}

但$ scope.h.length返回undefined。为什么? 我该怎样做得更好?

3 个答案:

答案 0 :(得分:3)

您使用Date.prototype.getHours()返回integer number,因此您无法直接使用.length

解决方案是在取长度

之前使用toString()函数

OR

您可以使用= "" + h

&#13;
&#13;
var n = new Date();
var h = n.getHours();
var m = n.getMinutes();

var hString = "" + h;
var mString = m.toString();

console.log(hString.length);
console.log(mString.length);
&#13;
&#13;
&#13;

答案 1 :(得分:3)

您不需要检查案件的长度。

if($scope.h < 10 && $scope.m < 10 ) {

答案 2 :(得分:0)

getHours()返回一个数字。数字没有长度属性。首先尝试使用$ scope.h.toString()将数字转换为字符串。