It's ugly, but it should work for anything that format-table works with, which means any sort of object, not just predefined types (though you'll get a lot of output for unknowns).
$($($($obj[0] | format-table | Out-string).split('-')[0]).split(" ").trim() | WHERE { $_.length -gt 0 })