Update deepGet.md

This commit is contained in:
Angelos Chalaris
2019-05-09 13:48:15 +03:00
committed by GitHub
parent 829c5beec8
commit 5c4c34ff5d

View File

@ -1,16 +1,17 @@
### deepGet
Returns the target value in a nested JSON object, based on the keys array.
Returns the target value in a nested JSON object, based on the `keys` array.
Contrust the keys you want in the nested JSON object as an `Array`.
Use `Array.prototype.reduce()` to get value from nested JSON object one by one. if the key exists in object, return target value, otherwise, return null.
Compare the keys you want in the nested JSON object as an `Array`.
Use `Array.prototype.reduce()` to get value from nested JSON object one by one.
If the key exists in object, return target value, otherwise, return `null`.
```js
const deepGet = (obj, keys) => keys.reduce((xs, x) => (xs && xs[x]) ? xs[x] : null, obj)
```
```js
let idx = 2; // or variable from other places
let index = 2;
const data = {
foo: {
foz: [1, 2, 3],
@ -19,6 +20,6 @@ const data = {
}
}
};
deepGet(data, ['foo', 'foz', idx]); // get 3
deepGet(data, ['foo', 'foz', index]); // get 3
deepGet(data, ['foo', 'bar', 'baz', 8, 'foz']); // null
```