d3js.entries pure Javascript Alternative

A way to get an array of key/value pairs from an object w/o having to include the entire d3js library

by Matthew Marcus

JavaScript

if(typeof Object.keys !== 'function'){
    Object.prototype.keys  = function(obj){
        var keys = [];
        for(var key in obj){
            keys.push(key);
        }
        return keys;
    }
}

Object.prototype.entries = function(){
    var 
        keys = Object.keys(this),
        entries = [];
    for (var i = 0; i < keys.length; i++){
        entries.push({
            key: keys[i],
            value: this[keys[i]]
        });
    }
    
    return entries;
};

var simpleObj = {
    a: 'A',
    b: ['a', 1, 'B', {'one':1}],
    c: {'one':'Hello World'},
    d: 'D'
};

console.log(simpleObj.entries());