【问题标题】:How to remove empty key from object in angularjs?如何从angularjs中的对象中删除空键?
【发布时间】:2015-07-13 14:36:21
【问题描述】:

我有一个像这样的 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));

【问题讨论】:

  • 为什么不用lodash或者下划线,_.reject函数
  • 我们不能使用javascript直接删除吗?
  • 它是 JSONArray 还是 JSONObject ??

标签: javascript angularjs html filter


【解决方案1】:

你可以使用Object.keysdelete,像这样

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

$scope.displayDataObject.filter是Array方法,Object中没有.filter方法

【讨论】:

    【解决方案2】:

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

    要删除空项,您可以简单地使用delete

    delete $scope.displayData[""];

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多