У каждого пользователя есть массив в объекте (этот основной объект может содержать до 3000 массивов в любое время, что продолжает расти).
В массиве содержатся имя пользователя и последние 4 сообщения, отправленные пользователем (сообщения хэшируются методом быстрого хэширования). Старые сообщения выталкиваются.
Когда новое сообщение добавляется в массив, все элементы получают проверку, чтобы увидеть, если они равны. Будет ли лучший способ сделать это. Я уверен, что массивный объект с вложенными массивами немного медленный?
let messagescont = {}
if (!messagescont.hasOwnProperty("a" + message.author.id)){
//add new user to object
messagescont["a" + message.author.id] = [{data})
}else{
//user has object
messagescont["a" + message.author.id].push({data})
if(messagescont["a" + message.author.id].length > 4){
messagescont["a" + message.author.id].splice(0,1)
let hashtable = [];
messagescont["a" + message.author.id].forEach(messages =>
hashtable.push(messages.data.hash))
const arraysame = !!hashtable.reduce(function (a,b){ return (a === b)? a : NaN;});
}
}
Объект данных выглядит так
const data = {
hash: hashCode(message.content),
username: message.author.username,
userid: message.author.id,
}
Этот массив / объект / беспорядок массива
{username [{data},{data},{data}],
username2 [{data},{data},{data} }