Показать сообщение отдельно
  #1 (permalink)  
Старый 28.07.2018, 10:18
Новичок на форуме
Отправить личное сообщение для niko45 Посмотреть профиль Найти все сообщения от niko45
 
Регистрация: 20.11.2014
Сообщений: 7

Помогите решить задачку с массивами
Всем привет!

Необходимо найти наибыстрейшее решение на javascript, т. е. наиболее эффективное с точки зрения времени исполнения браузером. Есть массив a, который содержит результаты торгов на бирже за день:
var a=[
{date: "19980105", open: 5.995, high: 6, low: 5.995, close: 5.999},
{date: "19980108", open: 5.993, high: 6, low: 5.993, close: 5.999}
]


date - это номер рабочего дня в формате YYYYMMDD, как понимаете, торги идут только в рабочие дни. Далее есть массив b со всеми календарными днями. Он разумеется всегда больше массива a. Надо эффективно раскидать данные рабочих дней по массиву календарных дней, так чтобы в итоге получился массив с примерного вида:

с=[
{date: "19980105", open: 5.995, high: 6, low: 5.995, close: 5.999},
{date: "19980106", empty: true},
{date: "19980107", empty: true},
{date: "19980108", open: 5.993, high: 6, low: 5.993, close: 5.999}
]


Про массивы a и b точно известно, что они отсортированы по возрастанию времени date. Задачу сам я решил, но малоэффективно, здесь важно, что сами массивы очень здоровенные, т.к. интервалы времени вплоть до вековых, т.е. 365 дней * 100 лет. Спасибо за помощь!
Ответить с цитированием