比较两个不同对象的值

Comparing the values of two different objects

本文关键字:对象 两个 比较      更新时间:2024-04-29

我有两个对象。

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

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

如何在JavaScript中检查此条件?

假设对象中的属性类型为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
}

希望这能有所帮助!

请参阅: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));

首先,没有"JSON对象"这回事——如果你有两个对象的JSON表示,它们基本上是可以解析为Javascript对象的字符串文本。一旦您将它们解析为javascript对象(使用object = JSON.parse(string)),您就可以用标准的方式对它们进行操作,即使用2个比较来断言结果的值在所需的范围内。