Size: a a a

Node.js — русскоговорящее сообщество

2020 February 21

АГ

Андрей Гончаренко in Node.js — русскоговорящее сообщество
Ребята помогите пожалуйста, как сделать такую штуку?

const oldUserList = new Object({
   0: {id: 1, name: 'afs', age: 2},
   1: {id: 2, name: 'asf', age: 3},
   2: {id: 3, name: 'asf', age: 3},
   3: {id: 4, name: 'asf', age: 3},
});

const newUserList = new Object({
   0: {id: 1, name: 'afs', age: 2},
   1: {id: 2, name: 'asf', age: 3},
   3: {id: 5, name: 'asf', age: 3}
});

const deleteUsers = {};
const newUsers = {};
источник

S

Silent in Node.js — русскоговорящее сообщество
Mishell
У меня есть массив, который постоянно пополняется. Некоторые данные устаревают со временем, и их нужно удалять из начала массива.
Как лучше это сделать?
Я рассматривал применять на массиве shift, но это дорогостоящая операция, и при большом массиве думаю будет медленно.
Альтернатива - использовать slice, обрезать ненужное, а измененным массивом перезаписывать старый массив.
Но я не знаю на сколько это дорогая операция. Подскажите, как эффективнее обрезать старые данные из большого массива?

А может есть и готовые решения/библиотеки с хорошим бенчмарком, что бы контролировать серии данных.
а для чего, можно узнать? и как определяется время жизни?
источник

JD

John Doe in Node.js — русскоговорящее сообщество
Андрей Гончаренко
Ребята помогите пожалуйста, как сделать такую штуку?

const oldUserList = new Object({
   0: {id: 1, name: 'afs', age: 2},
   1: {id: 2, name: 'asf', age: 3},
   2: {id: 3, name: 'asf', age: 3},
   3: {id: 4, name: 'asf', age: 3},
});

const newUserList = new Object({
   0: {id: 1, name: 'afs', age: 2},
   1: {id: 2, name: 'asf', age: 3},
   3: {id: 5, name: 'asf', age: 3}
});

const deleteUsers = {};
const newUsers = {};
ctrl-c ctrl-v
источник

АГ

Андрей Гончаренко in Node.js — русскоговорящее сообщество
John Doe
ctrl-c ctrl-v
имеется в виду , что нужно узнать какие юзеры были удалены, а какие добавлены
источник

S

Silent in Node.js — русскоговорящее сообщество
Андрей Гончаренко
Ребята помогите пожалуйста, как сделать такую штуку?

const oldUserList = new Object({
   0: {id: 1, name: 'afs', age: 2},
   1: {id: 2, name: 'asf', age: 3},
   2: {id: 3, name: 'asf', age: 3},
   3: {id: 4, name: 'asf', age: 3},
});

const newUserList = new Object({
   0: {id: 1, name: 'afs', age: 2},
   1: {id: 2, name: 'asf', age: 3},
   3: {id: 5, name: 'asf', age: 3}
});

const deleteUsers = {};
const newUsers = {};
пройдись reduce
источник

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
Андрей Гончаренко
имеется в виду , что нужно узнать какие юзеры были удалены, а какие добавлены
какие размеры коллекций примерно?
источник

M

Mishell in Node.js — русскоговорящее сообщество
Silent
а для чего, можно узнать? и как определяется время жизни?
Мне поступают данные из биржи по сокетам, и мне нужно анализировать серии за последние X секунд.
В массиве может быть 100 элементов, а может быть 10000.
Суть в том, что как только в массив пришёл новый элемент, я должен проверить котировки за последние 20 секунд например. При этом все устаревшие элементы мне уже не нужны. Как-то так. Но скорость работы важна.
источник

АГ

Андрей Гончаренко in Node.js — русскоговорящее сообщество
Kirill Lesohorskyi
какие размеры коллекций примерно?
Не думаю что больше чем 100 юзеров будет
источник

M

Mishell in Node.js — русскоговорящее сообщество
Silent
а для чего, можно узнать? и как определяется время жизни?
В самом массиве вероятно будут объекты с таймштампом. Так что по нему я буду решать какие элементы уже устарели.
источник

а

а in Node.js — русскоговорящее сообщество
на экспресс после инициализации у раутов можно менять мидлвер?
или возможно токо в самом мидлвере условия деелать
источник

S

Silent in Node.js — русскоговорящее сообщество
Mishell
Мне поступают данные из биржи по сокетам, и мне нужно анализировать серии за последние X секунд.
В массиве может быть 100 элементов, а может быть 10000.
Суть в том, что как только в массив пришёл новый элемент, я должен проверить котировки за последние 20 секунд например. При этом все устаревшие элементы мне уже не нужны. Как-то так. Но скорость работы важна.
может тогда стоит redis воспользоваться?
источник

M

Mishell in Node.js — русскоговорящее сообщество
Silent
может тогда стоит redis воспользоваться?
Я не так уж много знаю о redis. Хранит данные в оперативке, имеет механизмы pub/sub. Но в чем тут преимущество по сравнению с ванильными массивами в js, чем мне поможет redis? На что нужно обратить внимание?
источник

S

Silent in Node.js — русскоговорящее сообщество
Mishell
Я не так уж много знаю о redis. Хранит данные в оперативке, имеет механизмы pub/sub. Но в чем тут преимущество по сравнению с ванильными массивами в js, чем мне поможет redis? На что нужно обратить внимание?
ну как минимум он меньше памяти ест, также можешь задать время жизни и не думать об удаление старых записей
источник

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
Андрей Гончаренко
Не думаю что больше чем 100 юзеров будет
let deletedUsers = Object.values(oldUserList).filter(x => !newUserList[x.id]);// not in new users => deleted;
let newUsers = Object.values(newUserList).filter(x => !oldUserList[x.id]);//not in old users => new user added;
источник

M

Mishell in Node.js — русскоговорящее сообщество
Silent
ну как минимум он меньше памяти ест, также можешь задать время жизни и не думать об удаление старых записей
Не знал о времени жизни. Спасибо, посмотрю в сторону redis.
источник

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
как-то так
источник

а

а in Node.js — русскоговорящее сообщество
а
на экспресс после инициализации у раутов можно менять мидлвер?
или возможно токо в самом мидлвере условия деелать
можно через stack
понял
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Mishell
Я не так уж много знаю о redis. Хранит данные в оперативке, имеет механизмы pub/sub. Но в чем тут преимущество по сравнению с ванильными массивами в js, чем мне поможет redis? На что нужно обратить внимание?
Он эффективно решает специфичные задачи. В то время как нода это среда исполнения общего назначения
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Это как процессор и видюха. Да, чисто гипотетически можно все на проц сбросить, ибо он способен исполнять любой алгоритм, но возможно медленно.
источник

АГ

Андрей Гончаренко in Node.js — русскоговорящее сообщество
Kirill Lesohorskyi
let deletedUsers = Object.values(oldUserList).filter(x => !newUserList[x.id]);// not in new users => deleted;
let newUsers = Object.values(newUserList).filter(x => !oldUserList[x.id]);//not in old users => new user added;
Спасибо🙏
источник