Вы можете сделать это, просто следя за тем, что вы возвращаете, и как вы объединяете результаты рекурсии.Вам не нужен внешний массив:
var d = {
name: "Simon",
age: "20",
clothing: {
style: "simple",
hipster: false
}
}
function deep(target){
return typeof target !== 'object' || target === null
? [target]
: [].concat(...Object.values(target).map(deep))
}
console.log(deep(d))
Если вам нужна строка, конечно, вы можете просто join()
массив.