Deep Values Extract

by billybraga

JavaScript

if (typeof String.prototype.startsWith != 'function') {
    String.prototype.startsWith = function (str) {
        return this.slice(0, str.length) == str;
    };
}

var getValues = function(obj, values) {
    values = values || [];
    

    switch (typeof obj) {
    case "string":
    case "number":
        values.push(obj.toString());
        break;

    case "object":
        var toString = obj.toString();
        var isArray = $.isArray(obj);
            
        for (var k in obj) {
            if (isArray || Object.prototype.hasOwnProperty.call(obj, k)) {
                getValues(obj[k], values);
            }
        }
        
        
       //if(toString != "[object Object]")
       //     values.push(obj.toString());
    }

    return values.join(' ');
};

document.write(getValues([{
    aItem1: {
        p1: "v1",
        p2: "v2",
        p3: ["v3", {p4: {p5: "v4"}}]
    }},
{
    aItem2: new Date()}]));