Skip to content

Instantly share code, notes, and snippets.

@jmuzsik
Last active July 11, 2018 02:14
Show Gist options
  • Save jmuzsik/99e4e147b51e5d053d8e51aba16aca59 to your computer and use it in GitHub Desktop.
Save jmuzsik/99e4e147b51e5d053d8e51aba16aca59 to your computer and use it in GitHub Desktop.
export const findDeep = (data, pathArr, fallback) => {
const len = pathArr.length
for (let i = 0; i < len; i++) {
let path = pathArr[i]
if (
Array.isArray(data[path]) ||
findDeep.isObject(data[path]) ||
typeof data[path] === 'string'
) {
if (i === len - 1) {
return data[path]
}
data = data[path]
} else {
return fallback
}
}
}
findDeep.isObject = obj => obj && typeof obj === 'object'
/* Ex.
var secondQuery = findDeep(
result,
[
"GoodreadsResponse",
"search",
0,
"results",
0,
"work",
0,
"best_book",
0,
"title",
0,
],
false
);
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment