Get the first defined and non-null value
Return the first item that is neither null nor undefined.
function coalesce(values) { return values.find(item => item !== undefined && item !== null) ?? null; }
Input & expected output
Input
[
null,
"",
"fallback"
]Expected output
""The edge case
Input
[
null,
null
]Expected output
nullKnow the limits
- 0 and "" count as defined, as the example shows — unlike ||. The ?? operator does the same for two values.
- The original took rest arguments; the lab passes one array.
The function above is the implementation used by the lab. The lab validates JSON types and caps size before execution; include equivalent validation when accepting untrusted input in your application.
Source & maintenance
Based on Get the first defined and non null argument from the original 1loc collection by Nguyen Huu Phuoc. Copyright (c) 2020 phuoc-ng. MIT licensed.
Takes one array instead of rest arguments; returns null when nothing qualifies. Original MDX retained as inert source evidence.
Maintained by Oveyon. Source commit: 14b481cf60df. Read the license.
Keep exploring
- Convert Celsius to Fahrenheit — Apply the temperature conversion without rounding the result.
- Convert hex to RGB — Expand #rgb if needed and read the red, green and blue channels.
- Convert URL parameters to object — Read a query string into an object; repeated keys become arrays.