getpathdeprecated

Get the value of a nested object key (including array indexes) if it exists, or undefined if it doesn't, without worrying about checking you still have a value at each level.

Usage no npm install needed!

<script type="module">
  import getpath from 'https://cdn.skypack.dev/getpath';
</script>

README

getPath

Kinda like isSet from that other language, but you get the value back too.

What

getPath takes an object (or array), and a string representing the path to a key you want to find within it. If it exists you'll get the value back, and if it doesn't you'll just get undefined. When you can't guarantee a value exists within the object this saves you from testing at every level.

In other words,

let myValue = 'default';

if (myObject && myObject.maybe && myObject.maybe[1] && myObject.maybe[1].maybeNot) {
    myValue = myObject.maybe[1].maybeNot;
}

becomes

const myValue = getPath(myObject, 'maybe[1].maybeNot') || 'default';

How

getPath takes two arguments - the object you want to find something within, and the path to what you want as a string. The path can include dot-notation and array indices.

If you have an object called a and want to use the value of a.b[1].c if it exists, just call getPath(a, 'b[1].c'). If that exists, you'll get it, and if any part of that path doesn't exist you'll just get undefined. Easy!