Find objects that share the same keys and values regardless of schema shape.
Install the package
> npm i @marilyn.m/object-traversal
How to use it
const Traversal = require("@marilyn.m/object-traversal");
Load the schema
const data = {
candies: [
{
name: "Twizzler"
},
{
name: "Skittles",
type: "fruity"
},
{
name: "Milky Way",
type: "chocolate"
},
],
drinks: [
{
name: "Champurrado",
type: "chocolate"
}
]
};
const object_traversal = new Traversal(data);
Find one or find all objects containing a specific key
/*
Return the first find
{ name: "Skittles", type: "fruity" }
*/
object_traversal.find("type").value();
/*
Return all
[
{ name: "Twizzlers" },
{ name: "Skittles", type: "fruity" },
{ name: "Milky Way", type: "chocolate" },
{ name: "Champurrado", type: "chocolate" }
]
*/
object_traversal.findAll("name").value();
Get the values
/*
[ "Twizzlers", "Skittles", "Milky Way', "Champurrado" ]
*/
object_traversal.get("name").value();
/*
Twizzlers
*/
object_traversal.first("name").value();
/*
[ { name: "Champurrado", type: "chocolate" } ]
*/
object_traversal.first("drinks").value();
Search where key and value exists
/*
[
{ name: "Skittles", type: "fruity" },
{ name: "Milky Way", type: "chocolate" },
{ name: "Champurrado", type: "chocolate" }
]
*/
object_traversal.where("type").value();
/*
[
{ name: "Milky Way", type: "chocolate" },
{ name: "Champurrado", type: "chocolate" }
]
*/
object_traversal.where("type", "chocolate").value();
View on Github