评估值Javascript时删除错误

时间:2016-05-05 15:45:50

标签: javascript arrays angularjs error-handling

在您回顾这个问题之前,我确切地知道导致此错误的原因以及原因。我有一个对象,我正在通过检查它的长度来有效地测试它是否为空;当数组为空时,每次SwingWorker调用会导致大约30个错误。

有没有办法阻止这些错误被不断抛出/是否有更好的方法来测试数组是否充满了某些东西?

JS:

$scope.$on('$ionicView.enter')

错误:

$scope.checkLeague = function () {
        if ($scope.favs.length > 0){
            return false;
        }
        return true;
    };

编辑:进一步查看问题后,null is not an object (evaluating '$scope.favs.length') 初始化为$scope.favs以尝试解决此错误,但后来在此设置为空数组代码,因为这是一个REST响应。问题仍然在于成功捕获一个总是被实例化但可能为空的数组。将数组记录到控制台将始终生成null

3 个答案:

答案 0 :(得分:0)

尝试在以下之前检查$ scope.favs值:

$scope.checkLeague = function () {
        if ($scope.favs && $scope.favs.length > 0){
            return false;
        }
        return true;
    };

答案 1 :(得分:0)

您可以尝试这样的事情:

$scope.checkLeague = function () {
    if ($scope.favs.hasOwnProperty("length") && $scope.favs.length > 0){
        return false;
    }
    return true;
};

答案 2 :(得分:0)

具有“0”或null值的length属性并不一定意味着该对象为空。检查一下

var a = [1,2,3,4];
a.key1 = "test";
a.length; // <- 4
Object.keys(a); // <- ["0", "1", "2", "3", "key1"]
a.length = null;
a; // <- [];
Object.keys(a); // <- ["key1"]
Object.getOwnPropertyNames(a); // <- ["length", "key1"]

您可能需要查看Object.keys().length