Array of non-null/undefined results after mapping
const nums = ["1", "a", "2", "b", "3"];
const parseNum = (s: string) => isNaN(Number(s)) ? undefined : Number(s);
mapDefined(nums, parseNum) // Returns [1, 2, 3]
const users = [{name: "Alice"}, null, {name: "Bob"}];
const getName = (user: any) => user?.name;
mapDefined(users, getName) // Returns ["Alice", "Bob"]
Maps an array of items using a function and filters out any null or undefined results.