jack e1a2621c78 update | 2 年之前 | |
---|---|---|
.. | ||
index.js | 2 年之前 | |
license | 2 年之前 | |
package.json | 2 年之前 | |
readme.md | 2 年之前 |
pluck a property out of an object.
var friendsAsJavaScriptLibraries = [
{
name: 'passy.js',
hobby: 'clay'
},
{
name: 'sindre.js',
vehicle: 'unicorn taxi'
},
{
name: 'addy.js',
invented: 'google *'
}
];
var names = friendsAsJavaScriptLibraries.map(function (item) {
return item.name;
});
var friendsAsJavaScriptLibraries = [ /* ... */ ];
var names = friendsAsJavaScriptLibraries.map(prop('name'));
The benefit is more noticeable when you're using multiple Array.prototype methods to shape your objects:
var friendsAsJavaScriptLibraries = [ /* ... */ ];
var urls;
if (friendsAsJavaScriptLibraries.every(prop('name'))) {
urls = friendsAsJavaScriptLibraries
.map(function (item) {
item.url = 'https://github.com/magical-library-land/' + item.name;
return item;
})
.map(prop('url'));
}
Perhaps you're already using Lo-Dash, Underscore.js, or another utility library. This should not supplement those libraries, and definitely cannot replace. This is better suited towards applications that don't want to carry the weight and/or functionality of such libraries, and just want something simple and modular.
prop
can be used in the browser or within your Node.js apps.
$ bower install --save propprop
<script src="bower_components/propprop/browser.js"></script>
$ npm install --save propprop
var prop = require('propprop');