我有两个对象。
"Initial": {"LF_Min": --,
"LF_Max": --,
"RF_Min": --,
"RF_Max": --};
"Result":{"LF_Status":--,
"RF_Status":--};
我必须检查Result.LF_Status
的值是否在Initial.LF_Min
和Initial.LF_Max
范围内。
如何在JavaScript中检查此情况?
答案 0 :(得分: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
}
希望这有帮助!
答案 1 :(得分: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));
答案 2 :(得分:-1)
首先,没有“JSON对象”这样的东西 - 如果你有两个对象的JSON表示,它们基本上是可以解析为Javascript对象的字符串文字。一旦将它们解析为javascript对象(使用object = JSON.parse(string)
),就可以用标准方式对它们进行操作,即。使用2次比较来断言结果的值在期望的范围内。