Skip to content

Instantly share code, notes, and snippets.

@pioz
Created February 17, 2017 15:16
Show Gist options
  • Select an option

  • Save pioz/cef45a23f75254ceffb8560f01d8c110 to your computer and use it in GitHub Desktop.

Select an option

Save pioz/cef45a23f75254ceffb8560f01d8c110 to your computer and use it in GitHub Desktop.
Deep recursively search object by id from object
const deep_search = (obj, id) => {
if (obj) {
if (obj.constructor === Object) {
if (obj.id === id) {
return obj
} else {
const keys = Object.keys(obj)
for(let i = 0; i < keys.length; i++) {
let r = deep_search(obj[keys[i]], id)
if (r) return r
}
}
} else if (obj.constructor === Array) {
for(let i = 0; i < obj.length; i++) {
let r = deep_search(obj[i], id)
if (r) return r
}
return undefined
} else {
return undefined
}
} else {
return undefined
}
}
const obj = {id: 200, name: "Yolo", others: [{id: 210, name: "Foo"}, {id: 220, name: "Bar"} ]}
console.log(deep_search(obj, 220))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment