Code Lab е в разработка. Постепенно добавяме нови уроци и подобрения. Прогресът може да бъде изтрит.
Зареждане…
Code Lab е в разработка. Постепенно добавяме нови уроци и подобрения. Прогресът може да бъде изтрит.
Зареждане…
Code Lab е в разработка. Постепенно добавяме нови уроци и подобрения. Прогресът може да бъде изтрит.
JAVASCRIPT STORAGE / CHAPTER 06 / Учене / LESSON 03
Теория. Истинските данни са вложени: масив от записи, а всеки запис има масив от части. JSON го носи без проблем — stringify обхожда дълбочината сам. Ти получаваш обратно същата структура след parse.
Работата е в обхождането: for (const item of data) за външния масив, вътре вторият цикъл (или reduce) за частите. Покажи резултата като елементи в списък (createElement + appendChild) и брой.
Малки примери:
const data = JSON.parse(raw.textContent); for (const item of data) { let sum = 0; for (const part of item.parts) sum += part.v; const li = document.createElement("li"); li.textContent = item.name + ": " + sum; list.appendChild(li); } count.textContent = String(data.length);
JSON.stringify(data[0]) показва само първия запис с цялата му вложеност.
Честа грешка: да забравиш, че parts е масив; да събираш низове вместо числа; да не нулираш сумата за всеки запис.
<pre id="raw">[{"id":1,"name":"Rent","parts":[{"k":"base","v":400},{"k":"fees","v":100}]},{"id":2,"name":"Food","parts":[{"k":"market","v":150}]}]</pre><ul id="list"></ul><p id="count"></p><p id="first"></p>Вложеният JSON се обхожда с цикъл в цикъл; stringify връща целия първи запис.
(празно)Натисни Run — HTML се зарежда в sandbox iframe; Stop маха iframe-а (спира и безкраен цикъл).
›