Search code examples
javascriptobjectprototype

How can i get both object length together from chain of object


Say I create a Object as follows

const myObj1 = {
    firstName: "Shaheb",
    lastName: "Ali",
    professions:"Web Developer"
}

And create another object with the above object to add as a prototype object

const myObj2 = Object.create(myObj1, {
    age:{
      value:33
    },
    edu:{
      value: "MBA"
    }
});

now I want to count length of both object together, how can i?


Solution

  • I understand you want to get count of all keys in your object(s). As there is no length property available for objects (only for arrays), you should use Object.keys(), which returns an array with all keys:

    const myObj1 = {
        firstName: "Shaheb",
        lastName: "Ali",
        professions:"Web Developer"
    }
    Object.keys(myObj1).length; // would return '3'
    

    I believe that instead of Object.create(), you actually want to use Object.assign(), which will assign all keys from myObj1 to myObj2:

    const myObj1 = {
        firstName: "Shaheb",
        lastName: "Ali",
        professions:"Web Developer"
    }
    
    const myObj2 = {
        age:{
          value:33
        },
        edu:{
          value: "MBA"
        }
    }
    
    Object.assign(myObj2, myObj1);
    document.write(Object.keys(myObj2).length + '<br>'); // return '5'
    document.write(Object.keys(myObj1).length); // return '3'