Code Lab е в разработка. Постепенно добавяме нови уроци и подобрения. Прогресът може да бъде изтрит.
Зареждане…
Code Lab е в разработка. Постепенно добавяме нови уроци и подобрения. Прогресът може да бъде изтрит.
Зареждане…
Code Lab е в разработка. Постепенно добавяме нови уроци и подобрения. Прогресът може да бъде изтрит.
JAVASCRIPT STORAGE / CHAPTER 06 / Учене / LESSON 08
Теория. CRUD = Create, Read, Update, Delete. За записите ти трябва СТАБИЛНО id — число, което не се променя и не се повтаря. Индексът в масива НЕ е добро id: след изтриване всички след него се местят.
Ново id: най-голямото id + 1 (или 1 за празен списък).
function nextId(items) { let max = 0; for (const item of items) if (item.id > max) max = item.id; return max + 1; }
Операции: - Добавяне: items.push({ id: nextId(items), title, amount }). - Редакция: намери записа по id (find) и промени полето. - Изтриване: items = items.filter(item => item.id !== id).
След ВСЯКА промяна: save(items) и рендер. Ако пазиш в паметта и забравиш save, при презареждане промяната изчезва.
Редът на ключовете при запис е винаги един и същ: id, title, amount — така данните са предвидими.
Честа грешка: length + 1 като id (след изтриване се дублира); да търсиш по индекс; да забравиш save след редакция.
<form id="f"><input id="title" name="title" type="text"><input id="amount" name="amount" type="text"><button type="submit">Add</button></form><input id="del-id" type="text"><button id="del" type="button">Delete</button><input id="edit-id" type="text"><input id="edit-title" type="text"><button id="edit" type="button">Rename</button><ul id="list"></ul><p id="count"></p>{
"expenses": "[{\"id\":1,\"title\":\"Rent\",\"amount\":500},{\"id\":2,\"title\":\"Food\",\"amount\":120},{\"id\":3,\"title\":\"Fun\",\"amount\":60}]"
}Стабилните id оцеляват при триене; индексът не. Запис след всяка промяна.
(празно)Натисни Run — HTML се зарежда в sandbox iframe; Stop маха iframe-а (спира и безкраен цикъл).
›