2016-08-18 107 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 != ""; 
});