javascript check existence of nested object

by hairinwind

JavaScript

var a = {b: {value:'test'}}

function prop() {
    var args = Array.prototype.slice.call(arguments); //convert arguments to array
    var resultWhenUndefinedFound = '';
    var result = args.reduce(function(prev, curr, index){
        if(prev === undefined) {
            return curr;
        }
        if (prev === resultWhenUndefinedFound) {
            return prev;
        }
        if(curr in prev) {
            return prev[curr];
        } else {
            return resultWhenUndefinedFound;
        }
    });
    return result;
}

console.log('value: '+prop(a, 'b', 'c', 'value'));
console.log('value: '+prop(a, 'b', 'value'));