Skip to content

Latest commit

 

History

History
116 lines (93 loc) · 2.56 KB

README.md

File metadata and controls

116 lines (93 loc) · 2.56 KB

resolve-dotstringkey

NPM version NPM downloads Known Vulnerabilities

Description

This package resolves stringified dot object notation (e.g., "person.address.city") to its value.

It will be useful in parsing and matching nested properties of object (e.g., {"person.address.city": "New York"} as in MongoDB queries).

Note: use square bracket notation for array indexes and dot notation for object properties. e.g. addresses[1].city.

Installation

$ npm i resolve-dotstringkey

Usage

resolveDotStringKey(rootObject, dottedString)

  • rootObject | datatype: object | default: none | required
  • dottedString | datatype: string | default: none | required
  • returns | datatype: any

Examples:

  const resolveKey = require("resolve-dotstringkey");

  const persons = [{
    name: "John",
    age: 28,
    contacts: [{
      address: { city: "New York", state: "NY", country: "USA" },
      phone: "+1 20000 50000"
    },
    {
      address: { city: "New Jersey", state: "NJ", country: "USA" },
      phone: "+1 21421 41254"
    }] 
  },
  {
    name: "Robin",
    age: 40,
    contacts: [{
      address: { city: "New York", state: "NY", country: "USA" },
      phone: "+1 21426 41255"
    }] 
  }]
Case 1:
  resolveKey(persons, "[0].name") // returns "John"
Case 2:
  resolveKey(persons, "[0].contacts[1].address.city") // returns "New Jersey"
Case 3:
  resolveKey(persons, "[0].contacts") 

returns

  [
    {
      address: { city: "New York", state: "NY", country: "USA" },
      phone: "+1 20000 50000"
    },
    {
      address: { city: "New Jersey", state: "NJ", country: "USA" },
      phone: "+1 21421 41254"
    }
  ]
Case 4:
  resolveKey(persons) 

returns

  [{
    name: "John",
    age: 28,
    contacts: [{
      address: { city: "New York", state: "NY", country: "USA" },
      phone: "+1 20000 50000"
    },
    {
      address: { city: "New Jersey", state: "NJ", country: "USA" },
      phone: "+1 21421 41254"
    }] 
  },
  {
    name: "Robin",
    age: 40,
    contacts: [{
      address: { city: "New York", state: "NY", country: "USA" },
      phone: "+1 21426 41255"
    }] 
  }]