\ / _. | _ ._ _|_ o ._ _
\/ (_| | (/_ | | |_ | | | (/_
JavaScript's Sister, and protector — providing you with type checking, functional iterators, and common utility helpers; utilizing native JavaScript methods (when available) for optimal speed.
Browser usage:
<script src="valentine.js"></script>
<script>
v.forEach(['a', 'b', 'c'], function (letter) {
})
</script>
Node users, install it:
$ npm install valentine
Use it:
var v = require('valentine');
v(['a', 'b', 'c']).map(function (letter) {
return letter.toUpperCase();
}).join(' ');
API
iterators
- v.each(ar || obj, callback[, scope])
- v.map(ar || obj, callback[, scope])
- v.every(ar, callback[, scope])
- v.some(ar, callback[, scope])
- v.filter(ar, callback[, scope])
- v.reject(ar, callback[, scope])
- v.indexOf(ar, item[, start])
- v.lastIndexOf(ar, item[, start])
- v.reduce(ar, callback, memo[, scope])
- v.reduceRight(ar, callback, memo[, scope])
utility
- v.extend(obj[, obj2[, obj3[...]]])
- v.merge(ar1, ar2)
- v.pluck(ar, key)
- v.toArray(sparse)
- v.size(ar)
- v.find(ar, key)
- v.compact(ar)
- v.flatten(ar)
- v.uniq(ar)
- v.first(ar)
- v.last(ar)
- v.keys(obj)
- v.values(obj)
- v.trim(str)
- v.bind(scope, fn)
type checking
- v.is.fun(o)
- v.is.str(o)
- v.is.ele(o)
- v.is.arr(o)
- v.is.arrLike(o)
- v.is.num(o)
- v.is.bool(o)
- v.is.args(o)
- v.is.emp(o)
- v.is.dat(o)
- v.is.nan(o)
- v.is.nil(o)
- v.is.und(o)
- v.is.obj(o)
Object Style
v(['a', 'b', 'c']).map(function (letter) {
return letter.toUpperCase();
});
Chains
v(['a', 'b', [['c']], 0, false,,,null,['a', 'b', 'c']])
.chain().flatten().compact().uniq().map(function (letter) {
return letter.toUpperCase();
}).value();
Ender Support
Don't have Ender? Install it, and don't ever look back.
$ [sudo] npm install ender -g
Then build valentine into your package
$ ender build valentine
Have an existing Ender package? Include it:
$ ender add valentine
Write code like a boss
$.v(['a', ['virus'], 'b', 'c']).reject(function (el, i) {
return $.is.arr(el[i]);
});
$.each
map
merge
extend
toArray
keys
values
trim
bind
Happy iterating!