Un petit article rapide pour partager une bibliothèque que j'utilise maintenant depuis quelques mois. Je viens de penser à la partager car elle continue d'évoluer, sans se compliquer, sans s'encombrer de choses inutiles, ce que je trouve remarquable (Last update 2 april 2015). Elle me facilite grandement la vie en NodeJs / AngularJs.

Underscore.JS se constitue de fonctions optimisées que nous réalisons habituellement à la main dans la plus grande partie des projets. Cela permet donc d'aller plus vite mais aussi de simplifier la relecture du code pour les optimisations.

Simple, non encombrant, rien à dire.

Pour plus de détails ;) sur Underscore.Js & dans le même style, loadash.

Ps : Pour une utilisation avec JSHint, n'oubliez pas d'éditer votre ".jshintrc" afin que celui ne vous remonte pas d'érreurs sur les "_" :

"predef": [ // Extra globals.
	"_"
],

Quelques exemples Underscore.Js :

findLastIndex_.findLastIndex(array, predicate, [context])

Like _.findIndex but iterates the array in reverse, returning the index closest to the end where the predicate truth test passes.

var users = [{'id': 1, 'name': 'Bob', 'last': 'Brown'},
             {'id': 2, 'name': 'Ted', 'last': 'White'},
             {'id': 3, 'name': 'Frank', 'last': 'James'},
             {'id': 4, 'name': 'Ted', 'last': 'Jones'}];
_.findLastIndex(users, {
  name: 'Ted'
});
=> 3

clone_.clone(object)

Create a shallow-copied clone of the provided plain object. Any nested objects or arrays will be copied by reference, not duplicated.

_.clone({name: 'moe'});
=> {name: 'moe'};

matcher_.matcher(attrs)

Returns a predicate function that will tell you if a passed in object contains all of the key/value properties present in attrs.

var ready = _.matcher({selected: true, visible: true});
var readyToGoList = _.filter(list, ready);