如何从angularjs中的对象中删除空键?

时间:2015-05-04 09:00:01

标签: javascript angularjs html5 filter

我有一个看起来像这样的JSONarray,

        {
        "TotalMemory": [{
            "key": "TotalMemory",
            "values": [
                [118, 10]
            ]
        }],
        "Freememory": [{
            "key": "Freememory",
            "values": [
                [121, 10]
            ]
        }],
        "BufferSize": [{
            "key": "BufferSize",
            "values": [
                [123, 10]
            ]
        }],
        "TotalSwapMemory": [{
            "key": "TotalSwapMemory",
            "values": [
                [125, 10]
            ]
        }],
        "UsedSwapMemory": [{
            "key": "UsedSwapMemory",
            "values": [
                [127, 10]
            ]
        }],
        "FeeSwapMemory": [{
            "key": "FeeSwapMemory",
            "values": [
                [129, 10]
            ]
        }],
        "": [{
            "key": "",
            "values": []
        }]
    }

我需要删除最后一个空的项目。我已经关注Remove empty,但这不起作用。

$scope.displayData  = $scope.displayData.filter(function() { return true; });
console.log(angular.toJson($scope.displayData));

2 个答案:

答案 0 :(得分:8)

您可以使用Object.keysdelete,就像这样

Object.keys($scope.displayData).forEach(function(key) {
    if (!key) {
        delete $scope.displayData[key];
    }
}); 

$scope.displayDataObject.filter是数组方法,在Object中没有.filter方法

答案 1 :(得分:2)

您的结构不是Array,而是带有键(属性)和值的Object

要删除空白项目,只需使用delete

即可

delete $scope.displayData[""];

如果$scope.displayData[""]不存在,则不会出错。