javascriptarraysnode.jsobject

How can i find an Object key with the longest char length in an array of objects


Say i have a collection of objects like so

var collection = [
{
     name:"John",
     age:12,
     location:"Califonia",
     gender:"Male"
},
{
     name:"Jane",
     age:18,
     location:"New york",
     gender:"Female"
}
]

it is obvious "location" is the object key with the longest character length.

But how can i get this dynamically as i dont know how collection will be structured in advance.


Solution

  • if you are sure the items in the collection will always have the same structure you can simple do this.

    var collection = [
    {
         name:"John",
         age:12,
         location:"Califonia",
         gender:"Male"
    },
    {
         name:"Jane",
         age:18,
         location:"New york",
         gender:"Female"
    }
    ]
    
    function getMaxKeys(collection){
            var keys = Object.keys(collection[0]);
            var keyWithMaxWidth = keys.reduce(function(prev, current){
                if(prev.length > current.length) return prev;
                else return current
            });
            return keyWithMaxWidth;
    }
    
    getMaxKeys(collection) //location