Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var async = require('async');
- _ = require('lodash');
- var DATA = [
- { id: 1, name: 'One', group: 'One' },
- { id: 4, name: 'Trr', group: 'Two' },
- { id: 3, name: 'Rtt', group: 'Three' },
- { id: 4, name: 'Vbb', group: 'Two' },
- { id: 8, name: 'Ncc', group: 'One' },
- { id: 6, name: 'Onaaa', group: 'Three' },
- { id: 7, name: 'Opaa', group: 'One' }
- ];
- var data = [], count, err;
- function group(data) {
- var hash = {}, arr = [];
- data.forEach(function (o) {
- if (!hash[o.group])
- hash[o.group] = {
- count: 0
- };
- hash[o.group].count++;
- hash[o.group].name = o.name;
- hash[o.group].id = o.id;
- });
- Object.keys(hash).forEach(function (val) {
- arr.push(hash[val]);
- });
- return arr;
- }
- var res = {};
- var tasks = {
- group: function (callback) {
- data = group(DATA);
- res = { group: 1 };
- callback(null, data);
- },
- sort: function (callback) {
- data = _.sortBy(data, function (o) {
- return o.id;
- });
- res.sort = 1;
- callback(null, data);
- },
- count: function(callback){
- count = data.length;
- callback(data, { count: 1});
- }
- };
- async.parallel(tasks, function (err, data) {
- console.info(JSON.stringify(data, null, 2));
- });
- ///
- {
- "group": [
- {
- "count": 3,
- "name": "Opaa",
- "id": 7
- },
- {
- "count": 2,
- "name": "Vbb",
- "id": 4
- },
- {
- "count": 2,
- "name": "Onaaa",
- "id": 6
- }
- ],
- "sort": [
- {
- "count": 2,
- "name": "Vbb",
- "id": 4
- },
- {
- "count": 2,
- "name": "Onaaa",
- "id": 6
- },
- {
- "count": 3,
- "name": "Opaa",
- "id": 7
- }
- ],
- "count": {
- "count": 1
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement