2016-08-18 116 views
-3

我在下面的Ajax響應中獲取了一個對象數組。通過空屬性過濾數組

{ 
     "id": 2, 
     "name": "An ice sculpture", 
     "price": 12.50, 
     "tags": ["cold", "ice"], 
     "dimensions": { 
      "length": 7.0, 
      "width": 12.0, 
      "height": 9.5 
     }, 
     "warehouseLocation": { 
      "latitude": -78.75, 
      "longitude": 20.4 
     } 
    }, 
    { 
     "id": 3, 
     "name": "A blue mouse", 
     "price": 25.50, 
     "dimensions": { 
      "length": 3.1, 
      "width": 1.0, 
      "height": 1.0 
     }, 
     "warehouseLocation": { 
      "latitude": 54.4, 
      "longitude": -32.7 
     } 
    } 

    { 
     "id": 3, 
     "name": "A blue mouse", 
     "price": 25.50, 
     "dimensions": { 
      "length": 3.1, 
      "width": 1.0, 
      "height": 1.0 
     }, 
     "warehouseLocation": "" 
    } 

我想warehouseLocation過濾這些對象,這意味着我只需要對象,其中warehouseLocation不是空的。

+3

使用'.filter(...)' –

+0

儘量把@JsonInclude(Include.NON_EMPTY)在你的POJO嘗試類如果你有你的POJO。 –

回答

1

以下是一個入門示例。

var arr = [{ 
 
    "id": 2, 
 
    "name": "An ice sculpture", 
 
    "price": 12.50, 
 
    "tags": ["cold", "ice"], 
 
    "dimensions": { 
 
    "length": 7.0, 
 
    "width": 12.0, 
 
    "height": 9.5 
 
    }, 
 
    "warehouseLocation": { 
 
    "latitude": -78.75, 
 
    "longitude": 20.4 
 
    } 
 
}, { 
 
    "id": 3, 
 
    "name": "A blue mouse", 
 
    "price": 25.50, 
 
    "dimensions": { 
 
    "length": 3.1, 
 
    "width": 1.0, 
 
    "height": 1.0 
 
    }, 
 
    "warehouseLocation": { 
 
    "latitude": 54.4, 
 
    "longitude": -32.7 
 
    } 
 
}, { 
 
    "id": 3, 
 
    "name": "A blue mouse", 
 
    "price": 25.50, 
 
    "dimensions": { 
 
    "length": 3.1, 
 
    "width": 1.0, 
 
    "height": 1.0 
 
    }, 
 
    "warehouseLocation": "" 
 
}] 
 

 
var filteredArr = arr.filter(function(val) { 
 
    if (val.warehouseLocation == "") 
 
    return false; 
 
    return true; 
 
}); 
 

 
console.log(filteredArr);

2

可以使用Array.prototype.filter功能:

var data = [{ 
    "id": 2, 
    "name": "An ice sculpture", 
    "price": 12.50, 
    "tags": ["cold", "ice"], 
    "dimensions": { 
     "length": 7.0, 
     "width": 12.0, 
     "height": 9.5 
    }, 
    "warehouseLocation": { 
     "latitude": -78.75, 
     "longitude": 20.4 
    } 
    }, { 
    "id": 3, 
    "name": "A blue mouse", 
    "price": 25.50, 
    "dimensions": { 
     "length": 3.1, 
     "width": 1.0, 
     "height": 1.0 
    }, 
    "warehouseLocation": { 
     "latitude": 54.4, 
     "longitude": -32.7 
    } 
    }, 
    { 
    "id": 3, 
    "name": "A blue mouse", 
    "price": 25.50, 
    "dimensions": { 
     "length": 3.1, 
     "width": 1.0, 
     "height": 1.0 
    }, 
    "warehouseLocation": "" 
    } 
]; 

var warehouseData = data.filter(function(val) { 
    return val.warehouseLocation != ""; 
});