JSFiddle - React, Tailwind, and code Playground
JavaScript
function ArrayCollection() {
var myArray = new Array;
return {
empty: function () {
myArray.splice(0, myArray.length);
},
add: function (myElement) {
myArray.push(myElement);
},
getAll: function() {
return myArray;
},
remove: function(item) {
for(var i = 0; i < myArray.length; i++) {
if(item == myArray[i]) {
return myArray.splice(i, 1);
}
}
return null;
}
}
}
function usrSession(userID, cords, color) {
this.UserID = userID;
this.Cords = cords;
this.Color = color;
}
var usrSessionCollection = new ArrayCollection();
usrSessionCollection.getLast = function(n) {
var sessions = this.getAll();
var session;
var addedUserIDs = {};
var uniqueSessions = [], count, userID;
for(var i = sessions.length - 1; i >= 0, uniqueSessions.length < n; i--) {
session = sessions[i];
userID = session.UserID;
if(!addedUserIDs[userID]) {
uniqueSessions.push(session);
addedUserIDs[userID] = true;
}
}
return uniqueSessions;
}
var seedData = [
{ "usrID": "a", "usrcords": [1,100], "color": "red" },
{ "usrID": "b", "usrcords": [1,100], "color": "green" },
{ "usrID": "c", "usrcords": [1,100], "color": "blue" },
{ "usrID": "d", "usrcords": [1,100], "color": "green" },
{ "usrID": "d", "usrcords": [1,100], "color": "black" },
{ "usrID": "e", "usrcords": [1,100], "color": "white" },
{ "usrID": "c", "usrcords": [1,100], "color": "orange" },
{ "usrID": "g", "usrcords": [1,100], "color": "yellow" },
{ "usrID": "e", "usrcords": [1,100], "color": "red" },
{ "usrID": "e", "usrcords": [1,100], "color": "blue" }
];
$.each(seedData, function(index, data) {
usrSessionCollection.add(new usrSession(data.usrID, data.usrcords ,data.color));
});
var sessions =...