deep_pick

v0.0.9
Underscore Deep Pick Plugin
underscore

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

npm i deep_pick

Metadata

  • MIT
  • Whatever
  • Mohsen Azimi
  • released 5/1/2015

Downloads

Maintainers