eakwell
v0.2.7
Published
Utility functions for arrays and objects alike
Downloads
28
Maintainers
Readme
eakwell.js
Utility functions for arrays and objects alike, as a CommonJS module.
Installation
npm install eakwell --save
Usage
var _ = require('eakwell');
// Iterate through arrays
_.each([1,2,3], function(value) {});
// ..with index if you like
_.each([5,6,7], function(value, index) {});
// Iterate objects in the same way
_.each({a: 'foo', b: 'bar'}, function(value, key) {});
// Map arrays
var doubles = _.map([1,2,3], function(n) { return n * 2 });
// Index available if needed
_.map([9,8,7], function(n, index) { return n });
// Objects welcome too
var ages = {
Fred: 31,
Anna: 24
};
var futureAges = _.map(ages, function(age) { return age + 20 });
//=> {Fred: 51, Anna: 44}
// When called with a string, we map directly to the items' members
var names = _.map(people, 'name');
// Call the given function <n> times
_.times(2, function() { console.log('Hip') });
console.log('Hooray');
// Select a subset of items, that satisfy the given function
var odds = _.select([1,2,3,4], function(n) { return n % 2 });
// Check if all items match the given condition
var doneDeal = _.all(books, function(book) { return book.price < 10 });
// Check if at least one item matches the given condition
var forbidden = _.any(people, function(person) { return person.age < 18 });
// Check if the given item is a member of the array, object or string
var hasFooInList = _.contains(['foo', 'bar'], 'foo');
// For objects, the actual key where the value was found is returned
var barKey = _.contains({foo: 1, bar: 2}, 2);
// Call the named method on each item
_.invoke(todos, 'delete');
// Further arguments will get passed to the invoked method
_.invoke(items, 'set', key, value);
// Invoke returns an array of return values, similar to map
var uppercased = _.invoke(['foo', 'bar'], 'toUpperCase');
// Interleave the items of two arrays, stop on the shorter list
var a = [1,2,3,7];
var b = [4,5,6];
_.zip(a, b); //=> [[1,4], [2,5], [3,6]]
// Zip can be also be used with a callback
_.zip(a, b, function(fromA, fromB) {});
// Make a flat array from a hierarchy of nested arrays
_.flatten([1, [2, [3]], 4]); //=> [1,2,3,4]
// Return new object with the fields from both given objects
_.merge({a: 'foo'}, {b: 'bar'}); //=> {a: 'foo', b: 'bar'}
// Merge two arrays
var one2six = _.union([1,2,3], [4,5,6]); //=> [1,2,3,4,5,6]
License
MIT