let modeler = {
}
modeler.compArray = function (array1, array2) {
if ((array1 && typeof array1 === "object"
&& array1.constructor === Array)
&& (array2 && typeof array2 === "object" && array2.constructor === Array)) {
if (array1.length == array2.length) {
for (var i = 0; i < array1.length; i++) {
var ggg = modeler.compObj(array1[i], array2[i]);
if (!ggg) {
return false;
}
}
}
else {
return false;
}
}
else {
throw new Error("argunment is error ;");
}
return true;
};
modeler.compObj = function (obj1, obj2)
{
if ((obj1 && typeof obj1 === "object") && ((obj2 && typeof obj2 === "object"))) {
var count1 = modeler.propertyLength(obj1);
var count2 = modeler.propertyLength(obj2);
if (count1 == count2) {
for (var ob in obj1) {
if (obj1.hasOwnProperty(ob) && obj2.hasOwnProperty(ob)) {
if (obj1[ob] && obj2[ob]) {
if (obj1[ob].constructor == Array && obj2[ob].constructor == Array)
{
if (!modeler.compArray(obj1[ob], obj2[ob])) {
return false;
};
}
else if (typeof obj1[ob] === "string" && typeof obj2[ob] === "string")
{
if (obj1[ob] !== obj2[ob]) {
return false;
}
}
else if (typeof obj1[ob] === "number" && typeof obj2[ob] === "number")
{
if (obj1[ob] !== obj2[ob]) {
return false;
}
}
else if (typeof obj1[ob] === "boolean" && typeof obj2[ob] === "boolean")
{
if (obj1[ob] !== obj2[ob]) {
return false;
}
}
else if (typeof obj1[ob] === "object" && typeof obj2[ob] === "object")
{
if (!modeler.compObj(obj1[ob], obj2[ob])) {
return false;
};
}
else {
return false;
}
}
}
else {
return false;
}
}
}
else {
return false;
}
}