Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.01.2023, 15:57
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa Посмотреть сообщение
Т.е если надо сравнить на больше-меньше - надо сначала перевести в bigint? Просто как строки не получится.
Примеры были отредактированы. Теперь все значения целочисленные. Да, строку необходимо привести к виду BigInt.
Ответить с цитированием
  #12 (permalink)  
Старый 11.01.2023, 16:02
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa Посмотреть сообщение
Т.е если надо сравнить на больше-меньше - надо сначала перевести в bigint? Просто как строки не получится.
А для чего сравнивать на большее-меньшее? Если достаточно сравнить === ? типа

//

if('100' === '100') return true;

// а если всё таки требуется математические сравнения больше-меньше, то тогда определенно надо привести к виду BigInt
Ответить с цитированием
  #13 (permalink)  
Старый 11.01.2023, 16:02
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Сообщение от webgraph
по итогу при общем большом количестве операций думаю могут возникнуть трудности. и оптимальнее все таки искать value у конкретного участника:
Лучше, конечно иметь весь список операций, которые могут понадобиться. Какие частые и надо проводить быстро, какие редкие и скоростью можно пожертвовать.
Из того, что написано может быть такая схема

const operations_objects = [
	{
		from: 'e3d08a24-971f-4e5b-b646-a9decd12f05d', // UUID от кого
		to: 'd82bbb1d-0ab0-4d4d-8f97-41ddf6460c41',  // UUID кому
		value: '500.00000000000000',  // сколько (может быть уникальным значением) и принципиально строковое значение
		total_from: '100.00000000000000', // сколько осталось у отправителя
		total_to: '500.00000000000000', // сколько стало у получателя
		time: 1673357366 // дата проведения операции в секундах (от 01.01.1970)
    },
    {
		from: 'bd166b6d-381d-4109-9b4b-7a48a26b4119',
		to: 'ef59025a-165d-407e-831b-ab3464ae3861',
		value: '300.00000000000000',
		total_from: '700.00000000000000',
		total_to: '400.00000000000000',
		time: 1673357377
    },
];

memberOperations = new Map ()

Ключом является UUID участника
Значение - такой объект
{
operations: [<n.op>, <n.op>, <n.op...] // номера операций м массиве operations_objects с этим участником
values: new Map();
}

ключ у values - values из операции
значение - [<n.op>, <n.op>...] - номера операций м массиве operations_objects с этим участником и с этим values
Ответить с цитированием
  #14 (permalink)  
Старый 11.01.2023, 16:24
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa Посмотреть сообщение
Лучше, конечно иметь весь список операций, которые могут понадобиться. Какие частые и надо проводить быстро, какие редкие и скоростью можно пожертвовать.
Из того, что написано может быть такая схема

const operations_objects = [
	{
		from: 'e3d08a24-971f-4e5b-b646-a9decd12f05d', // UUID от кого
		to: 'd82bbb1d-0ab0-4d4d-8f97-41ddf6460c41',  // UUID кому
		value: '500.00000000000000',  // сколько (может быть уникальным значением) и принципиально строковое значение
		total_from: '100.00000000000000', // сколько осталось у отправителя
		total_to: '500.00000000000000', // сколько стало у получателя
		time: 1673357366 // дата проведения операции в секундах (от 01.01.1970)
    },
    {
		from: 'bd166b6d-381d-4109-9b4b-7a48a26b4119',
		to: 'ef59025a-165d-407e-831b-ab3464ae3861',
		value: '300.00000000000000',
		total_from: '700.00000000000000',
		total_to: '400.00000000000000',
		time: 1673357377
    },
];

memberOperations = new Map ()

Ключом является UUID участника
Значение - такой объект
{
operations: [<n.op>, <n.op>, <n.op...] // номера операций м массиве operations_objects с этим участником
values: new Map();
}

ключ у values - values из операции
значение - [<n.op>, <n.op>...] - номера операций м массиве operations_objects с этим участником и с этим values
Получается параметр operations позволит выводить весь список операций или определенное количество по конкретному UUID, а параметр values — искать значение value у этого участника.

Операции добавлять с помощью unshift().

Массивы в данном случае действительно быстро будут работать? А то мы выяснили, что они ппц какие медленные.
Ответить с цитированием
  #15 (permalink)  
Старый 11.01.2023, 16:33
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Сообщение от webgraph
Операции добавлять с помощью unshift().
Почему? обычный .push()

Сообщение от webgraph
Массивы в данном случае действительно быстро будут работать?
Вот для этого и нужен весь список операция, что бы понять, какие операции требуют перебора по массивам.
Из того. что вы написали в первом посте, я операций поиска не вижу. Только взять n последних для
Сообщение от webgraph
3. Вывести список всех операций (или их часть) по конкретному участнику
Ответить с цитированием
  #16 (permalink)  
Старый 11.01.2023, 16:38
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa Посмотреть сообщение
Почему? обычный .push()


Вот для этого и нужен весь список операция, что бы понять, какие операции требуют перебора по массивам.
Из того. что вы написали в первом посте, я операций поиска не вижу. Только взять n последних для
Зачем .push()? Новые операции добавлять в начало массива. А потом через цикл for вывести , например, 100 первых операций из массива — что будет являться 100 последними операциями участника.
Ответить с цитированием
  #17 (permalink)  
Старый 11.01.2023, 16:40
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa
Вот для этого и нужен весь список операция, что бы понять, какие операции требуют перебора по массивам.
мм что-то не до конца понятно что вы имеете ввиду?))
Ответить с цитированием
  #18 (permalink)  
Старый 11.01.2023, 16:43
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Вопрос, что чаще делается.
Если добавляем гораздо чаще, чем получаем последние n, то лучше push.
А получить время от времени последние можно через slice(-n)
Ответить с цитированием
  #19 (permalink)  
Старый 11.01.2023, 16:45
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa Посмотреть сообщение
Вопрос, что чаще делается.
Если добавляем гораздо чаще, чем получаем последние n, то лучше push.
А получить время от времени последние можно через slice(-n)
А, типа при unshift() — происходит смещение индексов. А при push() - просто добавление.

"получить время от времени" — это о чем вообще?)))
Ответить с цитированием
  #20 (permalink)  
Старый 11.01.2023, 16:46
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa
то лучше push
Чувствуется, что здесь актуальнее использовать List ?)))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как изменять left и top у hover через js что бы иметь возможность провести шар по кон feddim72 Элементы интерфейса 2 13.12.2020 23:02
Как получить доступ к элементами внешнего svg файла? pokk Общие вопросы Javascript 1 06.12.2019 12:17
Как получиться доступ к элементам не своей страницы? AlkaLoiD Общие вопросы Javascript 4 29.11.2010 12:47
доступ к данным iframe gooody Events/DOM/Window 2 26.01.2010 17:37
dynatree.jquery - как получть доступ к родительскому узлу. ast-ross jQuery 0 23.03.2009 18:39