1.0.1 • Published 7 years ago

deep_find v1.0.1

Weekly downloads
6
License
MIT
Repository
github
Last release
7 years ago

deepFind

find item(s) in an array or objects recursively.

Installation

npm install deep_find --save

or

bower install deep_find --save

Usage

var deepFind = require('deep_find').find;
var deepFindAll = require('deep_find').findAll;
var obj = deepFind(value, data, options);
var obj = deepFindAll(value, data, options);
  • value: value to be searched by key field
  • data: object or array of objects
  • options(optional): {searchField: 'key', children: 'children'}

    • searchField: string (the field will be search against default is 'key')
    • children: string or array (the children to recursively look for, without this option it will try all the array properties in the object.

Examples

var testData=[
  {
    "children": [
      {
        "children": [
          {
            "key": "k1-1-1-1",
            "name": "n1-1-1-1"
          }
        ],
        "key": "k1-1-1",
        "name": "n1-1-1"
      }
    ],
    "children1": [
      {
        "children": [
          {
            "key": "k1-1-2",
            "name": "n1-1-2"
          }
        ],
        "key": "k1-1",
        "name": "n1-1"
      }
    ],
    "key": "k1",
    "name": "n1"
  },
  {
    "children": [
      {
        "children": [
          {
            "key": "k2-1-1",
            "name": "n2-1-1"
          }
        ],
        "key": "k2-1",
        "name": "n2-1"
      }
    ],
    "ch2": [
      {
        "children": [
          {
            "key": "k2-1-1",
            "name": "n2-1-1(2)"
          }
        ],
        "key": "k2-1",
        "name": "n2-1"
      }
    ],
    "key": "k2",
    "name": "n2"
  }
];
deepFind('k1-1-1-1', testData);
// ->  {"key": "k1-1-1-1", "name": "n1-1-1-1"}

deepFind('k2-1-1', testData);
// ->  [{"key": "k2-1-1", "name": "n2-1-1"},
        {"key": "k2-1-1", "name": "n2-1-1(2)"}]

deepFindAll('n2-1-1(2)', testData, {searchField: 'name'});
// ->  {"key": "k1-1-1-1", "name": "n1-1-1-1"}