deep_pick

0.0.9 • Public • Published

Deep Pick

Build Status

Underscore Deep Pick Plugin

Makes it easy to pick deep inside an object. It's very similiar to XSLT. You need ro provide a schema that defines hieriachy of keys you need in your output instead of a list of keys that you use in regular _.pick.

Example

var input = {
  one: 1,
  two: true,
  three: 'Three',
  four: [1,2,3,4],
  five: {
    alpha: 1,
    beta: 2,
    gamma: 3,
    teta: {
        alef: 1,
        beh: 2,
        peh: 3
    }
  },
  answer: '42.00',
  description: 'This is an object.'
};
 
 
var schema = {
  one: true,
  three: true,
  five: {
    alpha: true,
    teta: {
      beh: true
    }
  }
};
 
deepPick(input, schema); // =>
 
{
  one: 1,
  three: "Three",
  five: {
    alpha: 1,
    teta: { 
      beh: 2
    }
  }
}

Array Support Example

var arr = [
  {
    blue: 100,
    green: 400,
    red: 300,
    grey: 200
  },
  {
    blue: 10,
    green: 40,
    red: 30,
    grey: 20
  },
  {
    blue: 1,
    green: 4,
    red: 3,
    grey: 2
  },

];

var arrSchema = [{blue: true}];

_.deepPick(arr, arrSchema)) // =>
  [
    {
      blue: 100
    },
    {
      blue: 10
    },
    {
      blue: 1
    }
  ]

Available in NPM and Bower

NodeJS environment

npm install deep_pick
var _ = require('underscore');
_.mixin({ deepPick: require('deep_pick') });

Browser environent

bower install deep_pick
<script src="/path/to/underscore.js"></script>
<script src="/path/to/deep_pick.js"></script>

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i deep_pick

Weekly Downloads

34

Version

0.0.9

License

MIT

Last publish

Collaborators

  • mohsen