function listToArray(obj) { return obj.rest ? [obj.value].concat(listToArray(obj.rest)) : [obj.value]; } a = { value: 5, rest: { value: 10, rest: { value: 15, rest: { value: 30, rest: null } } } }; alert(listToArray(a));