Get the value at given path of an object
Follow a dot-separated path, stopping at a missing step.
function getValue({ path, object }) { return path.split('.').reduce((value, key) => (value == null ? undefined : value[key]), object) ?? null; }
Input & expected output
Input
{
"path": "delivery.recipient.status",
"object": {
"delivery": {
"recipient": {
"status": "delivered"
}
}
}
}Expected output
"delivered"The edge case
Input
{
"path": "delivery.smtp.code",
"object": {
"delivery": {}
}
}Expected output
nullKnow the limits
- Missing paths return null here (undefined in the original), so the result is JSON-representable.
- The original stopped at any falsy value, so a 0 or "" on the path hid deeper keys; only null and undefined stop here.
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 value at given path of an object from the original 1loc collection by Nguyen Huu Phuoc. Copyright (c) 2020 phuoc-ng. MIT licensed.
Stops only at null or undefined (the original stopped at any falsy value), returns null for missing paths and rejects prototype keys. Original MDX retained as inert source evidence.
Maintained by Oveyon. Original source commit: 14b481cf60df. This edition’s file: contents/get-the-value-at-given-path-of-an-object.mdx in akamind/1loc, commit 0a77f131b22d. Read the license.
Keep exploring
- Pick properties from an object — Build a new object with only the requested own properties.
- Omit properties from an object — Keep the own enumerable fields that are not in a supplied list.
- Create an object from pairs of key and value — Turn [key, value] pairs into a plain object with Object.fromEntries.