DEV Community

Discussion on: How To Create A Global "JSON Search Algorithm" In JavaScript.

Collapse
haidarknightfury profile image
Haidar

What if you have nested objects?

Collapse
ianwijma profile image
Ian Wijma

You do object.values on the json items. Then do stringify on the item values. Than call includes on that string.

Not sure about performance though.

Collapse
emmaccen profile image
Lucius Emmanuel Emmaccen Author

Good question, in that case, another search would have to be implemented on the nested object, something like: topLevelData.nestedObject and this would pass for our search array.
Hope I've answered your question Haidar?

Collapse
haidarknightfury profile image
Haidar

Yes but not really scalable. What if you have more than 3 level of nesting. I think you could improve your function a bit

Thread Thread
johnkazer profile image
John Kazer

There's a library called fusejs that flattens out objects with nested arrays. It checks the type of each value and if array recurses. All in order to create one big flat object you can search in.

Thread Thread
emmaccen profile image
Lucius Emmanuel Emmaccen Author

Thanks for sharing John.

Thread Thread
johnkazer profile image
John Kazer

You might find fusejs interesting as a search library - the "flattening" process is part of how it searches rather than main function.