我有Json对象
0:Object
$id:"1"
MetricValue:83
GeoValue:"EAST"
DimensionValue:High
DocCount:28
1:Object
$id:"2"
MetricValue:97
GeoValue:"SOUTH"
DimensionValue:Medium
DocCount:28
2:Object
$id:"3"
MetricValue:90
GeoValue:"West"
DimensionValue:High
DocCount:30
3:Object
$id:"4"
MetricValue:50
GeoValue:"NORTH"
DimensionValue:Medium
DocCount:30
现在我想基于MetricValue属性
将此对象划分为两个对象即
我想将具有MetricValue> = 80的对象分组到一个对象中,并且< 80进入另一个对象。
上述对象将分为
Object1
0:Object
$id:"1"
MetricValue:83
GeoValue:"EAST"
DimensionValue:High
DocCount:28
1:Object
$id:"2"
MetricValue:97
GeoValue:"SOUTH"
DimensionValue:Medium
DocCount:28
2:Object
$id:"3"
MetricValue:90
GeoValue:"West"
DimensionValue:High
DocCount:30
Object2的
0:Object
$id:"1"
MetricValue:50
GeoValue:"NORTH"
DimensionValue:Medium
DocCount:30
答案 0 :(得分:2)
这可以通过使用filter和Object.keys()来完成。
var arr1 = Object.keys(yourObject).filter(function(obj){
return obj.metricValue < 91;
});
var arr2 = Object.keys(yourObject).filter(function(obj) {
return obj.metricValue > 90
});
这将为您提供两个数组,arr1包含度量值小于91的对象,arr2包含度量值大于90的对象。然后,您可以使用此代码Create object from array将这些数组转换回对象
或者你可以像这样遍历对象属性:
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
// Check metric values here and assign to your new objects
if(prop.metricValue > 90) // assign to your new object
else // assign to other object
}
}