toanhkma

Untitled

Apr 27th, 2022
1,215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. const getRandom = (min, max) => {
  3.     return parseInt(Math.random() * (max - min) + min);
  4. }
  5.  
  6. const cache = [];
  7.  
  8. const generateData = (min, max) => {
  9.     const time = cache[getRandom(min,parseInt(max/10))] ? cache[getRandom(min,parseInt(max/10))] : (new Date().getTime() + getRandom(min,parseInt(max/10))).toString();
  10.  
  11.     return {
  12.         _id: getRandom(min, max),
  13.         is_echo: getRandom(min, max) % 2 === 0 ? false : true,
  14.         page_id: getRandom(min, max),
  15.         time: time,
  16.     }
  17.  
  18. }
  19.  
  20. // const origin = [
  21. //     { _id: 6, is_echo: false, page_id: 4, time: '1651080432355' },
  22. //     { _id: 2, is_echo: true, page_id: 4, time: '1651080432355' },
  23. //     { _id: 4, is_echo: false, page_id: 5, time: '1651080432355' },
  24. //     { _id: 3, is_echo: false, page_id: 9, time: '1651080432355' },
  25. //     { _id: 2, is_echo: true, page_id: 3, time: '1651080432355' }
  26. //   ];
  27.  
  28. const origin = [];
  29. const originLength = 100;
  30. const min = 1;
  31. const max = 10;
  32.  for (let i = 0; i < originLength; i++) {
  33.     origin.push(generateData(min, max));
  34. }
  35.  
  36. console.log(origin);
  37.  
  38. const temp = {}
  39. const result = [];
  40.  
  41.  
  42. origin.map((originItem) => {
  43.     if (!originItem.time) {
  44.         return;
  45.     }
  46.     if (!temp[`${originItem.time}-${originItem.page_id}`]) {
  47.         temp[`${originItem.time}-${originItem.page_id}`] = {
  48.             time: originItem.time,
  49.             page_id: originItem.page_id,
  50.             num_echo_true: originItem.is_echo === true ? 1 : 0,
  51.             num_echo_false: originItem.is_echo === false ? 1 : 0,
  52.         }
  53.     } else {
  54.         if (originItem.is_echo) {
  55.             temp[`${originItem.time}-${originItem.page_id}`].num_echo_true++;
  56.         } else {
  57.             temp[`${originItem.time}-${originItem.page_id}`].num_echo_false++;
  58.         }
  59.     }
  60.     temp[`${originItem.time}-${originItem.page_id}`].total_echo = temp[`${originItem.time}-${originItem.page_id}`].num_echo_true + temp[`${originItem.time}-${originItem.page_id}`].num_echo_false;
  61. });
  62.  
  63.  
  64. Object.keys(temp).map((tempKeyItem) => {
  65.     result.push(temp[tempKeyItem]);
  66. });
  67.  
  68. console.log(result);
Advertisement
Add Comment
Please, Sign In to add comment