0.9.3 • Published 8 years ago

underscore-keypath v0.9.3

Weekly downloads
28,169
License
EPL-1.0
Repository
github
Last release
8 years ago

underscore-keypath

Join the chat at https://gitter.im/jeeeyul/underscore-keypath Build Status

key-path mechanism extensions for underscore (mixin).

underscore-keypath let you access JavaScript objects and arrays with keypath easily.

var foo = {
  bar : {
    name : "Cool!"
  },
  scores : [55, 27, 100, 33]
};

_(foo).valueForKeyPath("bar.name");           // --> "Cool!"
_(foo).setValueForKeyPath("bar.name", "BAR"); // --> sets foo.bar.name as "BAR"
_(foo).valueForKeyPath("scores.@max");        // --> 100

Install

NodeJS

$ npm install underscore-keypath
var _ = require("underscore-keypath");

or you may want to use origianl underscore:

var _ = require("underscore");
require("underscore-keypath"); // it will extend original underscore

in this case, please install "underscore" first.

$ npm install underscore
$ npm install underscore-keypath

Otherwise, underscore-keypath extends separated underscore in sandbox.

Meteor

$ meteor add jeeeyul:underscore-keypath

Front-end

$ bower install underscore-keypath

Or just download underscore-keypath.js manually.

Examples

var list = [{
  name : "foo",
  info : {
    favoriteColor : "red",
    age : 20
  }
},{
  name : "bar",
  info : {
    favoriteColor : "green",
    age : 17
  }
},{
  name : "zar",
  info : {
    favoriteColor : "red",
    age : 34
  }
}];

_(list).pluckByKeyPath("info.age");           // --> [20, 17, 34]
_(list).sortByKeyPath("info.age");            // --> [{name:"bar", ..}, {name:"foo", ..}, {name:"zar", ..}]
_(list).groupByKeyPath("info.favoriteColor"); // --> {red:2, green:1}

See API Document

0.9.3

8 years ago

0.9.2

8 years ago

0.9.1

9 years ago

0.9.0

9 years ago

0.0.22

9 years ago

0.0.21

9 years ago

0.0.20

9 years ago

0.0.19

9 years ago

0.0.18

9 years ago

0.0.17

9 years ago

0.0.15

10 years ago

0.0.14

10 years ago

0.0.13

10 years ago

0.0.12

10 years ago

0.0.11

10 years ago

0.0.10

10 years ago

0.0.7

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago