Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function findFrequency(array) {
- var ranks = array.reduce(function (totals, num) {
- const id = num["Product SKU"];
- if (!totals[id]) totals[id] = 0;
- totals[id] += num['Quantity'];
- return totals;
- }, {});
- //Iterate and find
- var max = 0;
- var id = '';
- Object.entries(ranks).forEach(function (num) {
- if (num[1] > max) {
- max = num[1];
- id = num[0];
- }
- });
- console.log('id ', id); //4 - number
- console.log('frequency ', max);
- return id;
- }
- fetch('https://static.adoric.com/Soda_DataSet.json')
- .then((response) => response.json())
- .then((response) => {
- const popularId = [];
- for (let i = 0; i < 10; i++) {
- console.log('iteration ', i);
- const maxId = findFrequency(response);
- let filteredTransactions = response.filter(item => item["Product SKU"] == maxId);
- response = response.filter(item => item["Product SKU"] != maxId);
- filteredTransactions = filteredTransactions.map(item => item["Transaction ID"]);
- filteredTransactions = Array.from(new Set(filteredTransactions));
- const releatedTransactions = response.filter(item => {
- if (filteredTransactions.some(i => item["Transaction ID"] == i)){
- return item
- }
- });
- let arrayForReleatedProducts = releatedTransactions;
- const releatedProducts = [];
- for (let j = 0; j < 10; j++) {
- console.log('small iteration ', i, j);
- const releated = findFrequency(arrayForReleatedProducts);
- arrayForReleatedProducts = arrayForReleatedProducts.filter(item => item["Product SKU"] != releated);
- releatedProducts.push(releated);
- }
- popularId.push({
- [maxId]: releatedProducts
- });
- }
- console.log('popularId', popularId);
- })
- .catch((error) => {
- console.log(error)
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement