Array.prototype augmentations, no complex.
I know this is bad but _( _( _( this ).is ).ugly() while this.is.clean(). Furthemore, I promise to modify all .prototype invocations on modules that are becoming popular.
## Array.prototype ###
All helpers are atomised in AMD modules. You can use it for instance with require.js or almond.js.
You can require juste one, such as map ( define('myModule', ['Array.nocomplex/map']);
) or group exists, such as Array/basics
, Array/math
or Array.nocomplex/all
Array/basics provide the following :
- map
- collect
- first
- has
- last
- onEls
- remove
- removeOneValue * except
- exceptFn
- uniq
- equals
[10,20].map(function(n) { return n * 2 }); // [20, 40]
Such as map, but provide a useful tricks :
[{ name : 'cyril'}, { name : 'piercus'}].collect('name') // ['cyril', 'piercus']
Useful, allow you to call a method on each element of the array
[{ callMe : function(arg) { console.log(arg)}}, { callMe : function() { console.log('world')}}].send('callMe', 'hello'); // log 'hello' and then 'world'
#### where Return a new array with all found occurences
Return the first found occurence wich evaluate to true
Return array[0]
Return true if instance has value
['cyril', 'piercus'].has('cyril'); // true
Replaces every element of this with f(element)
If found, the argument is removed from the array
Return the last element of the array
Return a new array without the element that are the same at the argument
#### isIn
Useful helpers when dealing with geometry.
Array/math
provide the following :
- equals
- multiply
- divide
- minus
- add
- round
- norm
See cagosta.github.io/Array.nocomplex
## Install ##
Array.nocomplex is coded as amd module but can be installed with npm, bower or old-fashioned src=".min.js".
npm install array-nocomplex
and use it with nodejs:
var ArrayNocomplex = require('array-nocomplex')
bower install Array.nocomplex
and use it with requirejs
require(['Array.nocomplex/Array.nocomplex'], function( ArrayNocomplex ){
})
Inside the dist
folder, download latest standalone minified version or development version and include it in your html page:
<script src="[path_to_source]/Array.nocomplex-latest-standalone-min.js%>"></script>
The module is available via the scope
window.ArrayNocomplex
## Documentation ##
See jsdoc-generated documentation in /documentation
app -> development files
|- bower_components -> [bower](https://github.com/bower/bower) front-end packages
|- main.js -> main file for browser and node.js, handle AMD config
|- array.nocomplex -> main AMD module
test -> unit tests
|
tasks -> [Grunt](http://gruntjs.com/) tasks, see [generator-mangrove-module](https://github.com/cagosta/generator-mangrove-module)
|
dist -> distribution & build files
|
node_modules -> node packages
|
documentation -> [jsdoc](http://usejsdoc.org/about-jsdoc3.html) generated documentation
Run grunt test:browser
and open test/
on your browser.
#### On a headless browser ####
grunt test:headless
will run your tests in a headless browser, with phantomjs and mocha
grunt test:node
will run your tests with node and mocha.
Because of requirejs, the mocha
command does not work.
- check future default implementations
- base all naming on lodash
This project uses Node.js, Grunt and Require.js for the build process. If for some reason you need to build a custom version install Node.js, npm install
and run:
grunt build
## Yeoman Mangrove module Generator ##
This module is based on a Yeoman generator: Generator-mangrove-module
Check it for task-related references such as build, deploy etc ..