jack e1a2621c78 update 2 年之前
..
index.js e1a2621c78 update 2 年之前
license e1a2621c78 update 2 年之前
package.json e1a2621c78 update 2 年之前
readme.md e1a2621c78 update 2 年之前

readme.md

propprop

pluck a property out of an object.

Before

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;
});

After

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'));
}

Why?

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.

Install

prop can be used in the browser or within your Node.js apps.

Browser

$ bower install --save propprop
<script src="bower_components/propprop/browser.js"></script>

Node.js

$ npm install --save propprop
var prop = require('propprop');

License

MIT © Stephen Sawchuk