{
"tags": {
"юр": [1,0],
"зозпп": [0],
"oracle": [2],
},
"data": [
{
"title": "Заголовок 1",
"content": "Запись 1",
"tags": [
"юр",
"зозпп"
]
},
{
"title": "Заголовок 2",
"content": "Запись 2",
"tags": [
"юр"
]
},
{
"title": "Заголовок 3",
"content": "Запись 3",
"tags": [
"oracle",
]
}
]
}
Есть вот такой json. Я делаю его parseJSON.
И вот такие операции я хочу совершать:
- Выводить все записи data, но в обратном порядке (начиная с последних)
- Добавлять запись в конец этого объектомассива
- Обращаться к записи по id.
- выводить все записи по тегу
- Удалять запись, используя его id
К примеру вывод записи в обратном порядке я делаю вот так:
jsonara.data.reverse();
viewContent(jsonara.data);
jsonara.data.reverse();
Зачем второй раз делаю реверс? Потому что после вывода есть вероятность, что будет добавлена новая запись. И как оказалось сделать дважды реверс быстрее, чем хранить 2 массива в обратном и прямом порядке или делать unshift (скорость последнего вообще на уровне *sarcasm*)
Обращаться по ID я могу без проблем до тех пор пока не появляется вопрос удаления записи. Если я делаю .splice, то у меня теряется порядок этих записей. В этом случае меня спасёт объект и тогда у меня будет
"1":{...},"2":{...},"3":{...}
, НО в этом случае я не могу доставать записи в обратном порядке, потому что мне придётся переводить это всё в массив, а затем обратно в объект, чтобы сохранить в json, что очень ресурсоёмко.
Что делать?