google+javascriptbanktwitter@js_bankfacebook@jsbankrss@jsbank
Guest, register






JavaScript Objects: Compare and Clone This JavaScript article tutorial shows you a short overview about JavaScript objects in comparing and cloning. You'll know how to clone JavaScript objects, make JavaScript object copy. This is really a should-read JavaScript tutorial when you would like to learn more advance JavaScript skills.


Free iPage Web Hosting for First Year NOW



If you're still looking for a reliable web host provider with affordable rates, why you don't take a little of time to try iPage, only with $1.89/month, included $500+ Free Extra Credits for the payment of 24 months ($45)?

Over 1,000,000+ existisng customers can not be wrong, definitely you're not, too! More important, when you register the web hosting at iPage through our link, we're going to be happy for resending a full refund to you. That's awesome! You should try iPage web hosting for FREE now! And contact us for anything you need to know about iPage.
Try iPage for FREE First Year NOW

Here's a handy way to determine if two JavaScript objects are identical without using a framework like jQuery or MooTools:

var compare_objects = function (obj1, obj2){

 
    var parameter_name;
 
    var compare = function(objA, objB, param){

 
        var param_objA = objA[param],
            param_objB = (typeof objB[param] === "undefined") ? false : objB[param];

 
        switch(typeof objA[param]){
            case "object": return (compare_objects(param_objA, param_objB));

            case "function": return (param_objA.toString() === param_objB.toString());

            default: return (param_objA === param_objB);
        }

 
    };
 
    for(parameter_name in obj1){
        if(typeof obj2[parameter_name] === "undefined" || !compare(obj1, obj2, parameter_name)){

            return false;
        }
    }
 
    for(parameter_name in obj2){

        if(typeof obj1[parameter_name] === "undefined" || !compare(obj1, obj2, parameter_name)){

            return false;
        }        
    }
 
    return true;

 
};

Here's an easy way to clone a JavaScript object:

var clone_object = function (original_obj) {

    var new_obj = {};
    for(var param in original_obj) {

        if(original_obj.hasOwnProperty(param)){
            if(typeof(original_obj[param]) === "object"){

                new_obj[param] = clone_object(original_obj[param]);

            } else {
                new_obj[param] = original_obj[param];

            }
        }
    }
    return new_obj;
};

A real-world example of the two functions:

var object_1 = { fruit: "apple", tree: "dogwood", number: 3 };

var object_2 = { fruit: "apple", tree: "dogwood", number: 3, cartoons: { anime: "robotech", fantasy: "he-man" } };

var object_3 = clone_object(object_2);
 
console.log("objects 1 and 2 match? " +compare_objects(object_1, object_2));

//displays false;
 
console.log("objects 2 and 3 match? " +compare_objects(object_2, object_3));

//displays true

Bear in mind both of these functions are recursive, which means the larger the object, the slower the performance.

JavaScript by day


Google Safe Browsing McAfee SiteAdvisor Norton SafeWeb Dr.Web