JSFiddle - React, Tailwind, and code Playground

by nevkatz

JavaScript

function roughSizeOfObject( object ) {

    var objectList = [];
    var stack = [ object ];
    var bytes = 0;

    while ( stack.length ) {
        var value = stack.pop();

        if ( typeof value === 'boolean' ) {
            bytes += 4;
        }
        else if ( typeof value === 'string' ) {
            bytes += value.length * 2;
        }
        else if ( typeof value === 'number' ) {
            bytes += 8;
        }
        else if
        (
            typeof value === 'object'
            && objectList.indexOf( value ) === -1
        )
        {
            objectList.push( value );

            for( var i in value ) {
                stack.push( value[ i ] );
            }
        }
    }
    return bytes;
}
let n = {
x:1,
};
let p = {
x:1,
y:2,
z:3
};
let o = {
x:1,
y:2
};


let ns = roughSizeOfObject(n);
let os = roughSizeOfObject(o);
let ps = roughSizeOfObject(p);
console.log('object n size: ' + ns);
console.log('object o size: ' + os);
console.log('object p size: ' + ps);