Advertisement
Guest User

Untitled

a guest
Aug 25th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. var async = require('async');
  2. _ = require('lodash');
  3.  
  4. var DATA = [
  5. { id: 1, name: 'One', group: 'One' },
  6. { id: 4, name: 'Trr', group: 'Two' },
  7. { id: 3, name: 'Rtt', group: 'Three' },
  8. { id: 4, name: 'Vbb', group: 'Two' },
  9. { id: 8, name: 'Ncc', group: 'One' },
  10. { id: 6, name: 'Onaaa', group: 'Three' },
  11. { id: 7, name: 'Opaa', group: 'One' }
  12. ];
  13.  
  14. var data = [], count, err;
  15.  
  16. function group(data) {
  17. var hash = {}, arr = [];
  18. data.forEach(function (o) {
  19. if (!hash[o.group])
  20. hash[o.group] = {
  21. count: 0
  22. };
  23. hash[o.group].count++;
  24. hash[o.group].name = o.name;
  25. hash[o.group].id = o.id;
  26. });
  27. Object.keys(hash).forEach(function (val) {
  28. arr.push(hash[val]);
  29. });
  30. return arr;
  31. }
  32. var res = {};
  33.  
  34. var tasks = {
  35. group: function (callback) {
  36. data = group(DATA);
  37. res = { group: 1 };
  38. callback(null, data);
  39. },
  40. sort: function (callback) {
  41. data = _.sortBy(data, function (o) {
  42. return o.id;
  43. });
  44. res.sort = 1;
  45. callback(null, data);
  46. },
  47. count: function(callback){
  48. count = data.length;
  49. callback(data, { count: 1});
  50. }
  51. };
  52.  
  53. async.parallel(tasks, function (err, data) {
  54. console.info(JSON.stringify(data, null, 2));
  55. });
  56.  
  57. ///
  58. {
  59. "group": [
  60. {
  61. "count": 3,
  62. "name": "Opaa",
  63. "id": 7
  64. },
  65. {
  66. "count": 2,
  67. "name": "Vbb",
  68. "id": 4
  69. },
  70. {
  71. "count": 2,
  72. "name": "Onaaa",
  73. "id": 6
  74. }
  75. ],
  76. "sort": [
  77. {
  78. "count": 2,
  79. "name": "Vbb",
  80. "id": 4
  81. },
  82. {
  83. "count": 2,
  84. "name": "Onaaa",
  85. "id": 6
  86. },
  87. {
  88. "count": 3,
  89. "name": "Opaa",
  90. "id": 7
  91. }
  92. ],
  93. "count": {
  94. "count": 1
  95. }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement