Package Exports
- underscore-keypath
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (underscore-keypath) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
underscore-keypath
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"); // --> 100Install
NodeJS
$ npm install underscore-keypathvar _ = require("underscore-keypath");or you may want to use origianl underscore:
var _ = require("underscore");
require("underscore-keypath"); // it will extend original underscorein this case, please install "underscore" first.
$ npm install underscore
$ npm install underscore-keypathOtherwise, underscore-keypath extends separated underscore in sandbox.
Meteor
$ meteor add jeeeyul:underscore-keypathFront-end
$ bower install underscore-keypathOr 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
