JSFiddle - React, Tailwind, and code Playground

by jfriend00

HTML

Common properties:
<div id="results"></div>

CSS

#results {
    font-family: "Courier New";
}

JavaScript

function findCommonProps(obj1, obj2) {
    var map1 = {}, map2 = {};
    var commonProps = [];
    
    function isArray(item) {
        return Object.prototype.toString.call(item) === "[object Array]";
    }
    
    function getProps(item, map) {
        if (typeof item === "object") {
            if (isArray(item)) {
                // iterate through all array elements
                for (var i = 0; i < item.length; i++) {
                    getProps(item[i], map);
                }
            } else {
                for (var prop in item) {
                    map[prop] = true;
                    // recursively get any nested props
                    // if this turns out to be an object or array
                    getProps(item[prop], map);
                }
            }
        }
    }
    
    // get all properties in obj1 into a map
    getProps(obj1, map1);
    getProps(obj2, map2);
    for (var prop in map1) {
        if (prop in map2) {
            commonProps.push(prop);
        }
    }
    return commonProps;
}

var data1 = {
"aaData": [
 {
  "serial":"LRRFNGHX",
  "model":"Dell Optiplex",
  "os":"Windows NT",
  "man":"Dell",
  "group":"558D",
  "pcName":"LID93740SHD0",
  "department":"HR",
  "customerName":"Bill gates",
  "username":"bgates",
  "deployLocation":"Chicago, IL",
  "currentLocation":"127.0.0.1",
  "cnStatus":"Usable",
  "previousModel":"Gateway",
  "id":"256",
  "enabled":"false"
  }
 ]
};

var data2 = {
    "team": {man: 1},
    "department": {
        "Automotive": "Automotive"
        },
    "os": {xx:[{group: 3}]},
    "model": {},
    "cnStatus": {
        "Usable": "Usable"
        }
};

document.getElementById("results").innerHTML = JSON.stringify(findCommonProps(data1, data2));