Advertisement
orenchuck

soda statistic from GA

Nov 10th, 2022
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. function findFrequency(array) {
  2. var ranks = array.reduce(function (totals, num) {
  3. const id = num["Product SKU"];
  4. if (!totals[id]) totals[id] = 0;
  5. totals[id] += num['Quantity'];
  6.  
  7. return totals;
  8. }, {});
  9.  
  10. //Iterate and find
  11. var max = 0;
  12. var id = '';
  13. Object.entries(ranks).forEach(function (num) {
  14. if (num[1] > max) {
  15. max = num[1];
  16. id = num[0];
  17. }
  18. });
  19. console.log('id ', id); //4 - number
  20. console.log('frequency ', max);
  21. return id;
  22. }
  23.  
  24. fetch('https://static.adoric.com/Soda_DataSet.json')
  25. .then((response) => response.json())
  26. .then((response) => {
  27. const popularId = [];
  28. for (let i = 0; i < 10; i++) {
  29. console.log('iteration ', i);
  30. const maxId = findFrequency(response);
  31.  
  32. let filteredTransactions = response.filter(item => item["Product SKU"] == maxId);
  33. response = response.filter(item => item["Product SKU"] != maxId);
  34. filteredTransactions = filteredTransactions.map(item => item["Transaction ID"]);
  35. filteredTransactions = Array.from(new Set(filteredTransactions));
  36. const releatedTransactions = response.filter(item => {
  37. if (filteredTransactions.some(i => item["Transaction ID"] == i)){
  38. return item
  39. }
  40. });
  41. let arrayForReleatedProducts = releatedTransactions;
  42. const releatedProducts = [];
  43. for (let j = 0; j < 10; j++) {
  44. console.log('small iteration ', i, j);
  45. const releated = findFrequency(arrayForReleatedProducts);
  46. arrayForReleatedProducts = arrayForReleatedProducts.filter(item => item["Product SKU"] != releated);
  47. releatedProducts.push(releated);
  48. }
  49. popularId.push({
  50. [maxId]: releatedProducts
  51. });
  52. }
  53. console.log('popularId', popularId);
  54. })
  55. .catch((error) => {
  56. console.log(error)
  57. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement