JSFiddle - React, Tailwind, and code Playground

by Derek Leung

JavaScript

let objToCheck = {
  a: 2, 
  b: 5,
  c: 9,
  d: 33,
  e: 4,
  f: 8,
  g: 3,
  h: 10
};
console.log(getThreeLargestKeys(objToCheck));

function getThreeLargestKeys(obj){
    var k1, k2, k3;
    var v1, v2, v3;
    v1 = v2 = v3 = -Infinity;
    
    // O(1)
    var insertKey = function(key){
    	var value = obj[key];
        if(value >= v1){
        	v3 = v2; v2 = v1; v1 = value;
            k3 = k2; k2 = k1; k1 = key;
        }else if(value >= v2){
        	v3 = v2; v2 = value;
            k3 = k2; k2 = key;
        }else if(value >= v3){
        	v3 = value;
            k3 = key;
        }
    };
    
    // O(n)
    for(var key in obj){
		insertKey(key);
    }
    
    return [k1, k2, k3];
}