2015-02-24 117 views
0

我有两个对象。比较两个不同对象的值

"Initial": {"LF_Min": --, 
      "LF_Max": --, 
      "RF_Min": --, 
      "RF_Max": --}; 

"Result":{"LF_Status":--, 
      "RF_Status":--}; 

我必须检查的Result.LF_Status的值在Initial.LF_MinInitial.LF_Max与否的范围。

如何在JavaScript中检查此情况?

回答

1

看到这一点:http://jsfiddle.net/dwboy657/

Initial={"LF_Min": "10", "LF_Max": "20", "RF_Min": "30", "RF_Max": "50"}; 
Result={"LF_Status":"21", "RF_Status":"4"}; 

function checkRange(compareObj,resultObj){ 
    if(resultObj.LF_Status>=compareObj.LF_Min && resultObj.LF_Status<=compareObj.LF_Max) 
    { 
     return true; 
    }else{ 
     return false; 
    } 

} 

alert('Result LF is within range: '+checkRange(Initial,Result)); 
-1

首先,有一个“JSON对象”没有这样的事 - 如果你有两个对象的JSON表示,他们是可以被解析成基本字符串文字一个Javascript对象。一旦你把它们解析成javascript对象(使用object = JSON.parse(string)),你可以用标准的方式来操纵它们,例如。使用2个比较来断言结果的值在期望的范围内。

2

假设在你的对象的属性是Number类型:

function validate(initial, result) { 
    return 
    result.LF_Status >= initial.LF_Min && 
    result.LF_Status <= initial.LF_Max; 
} 

当我为广泛范围约束检查,我觉得有用延长Number原型就像这样:

Number.prototype.isInRange = function(min, max) { 
    return this >= min && this <= max; 
} 

通过定义此扩展,您可以以更简洁的方式实现对象验证:

if(Result.LF_Status.isInRange(Initial.LF_Min, Initial.LF_Max)) { 
    // Your code here 
} 

希望这有助于!