Skip to content

Notes

  • Date Posted: March 31, 2021

Traversing an object into a new collection

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