ÐÑд авÑоÑа: Ñ Ð·Ð²Ð¸ÑÐ°Ð¹Ð½Ð¸Ñ Ð¼Ð°ÑÐ¸Ð²Ð°Ñ Ð¼Ð¾Ð¶Ð½Ð° викоÑиÑÑовÑваÑи Ñикл for. Ðб’ÑкÑи JSON ж вÑдÑÑзнÑÑÑÑÑÑ Ð²Ñд звиÑÐ°Ð¹Ð½Ð¸Ñ Ð¼Ð°ÑивÑв Ñим, Ñо кожна клÑÑинка мÑÑÑиÑÑ Ñ ÑÐ¾Ð±Ñ Ð¿Ð°ÑÑ Ð²Ð»Ð°ÑÑивÑÑÑÑ Ñ Ð·Ð½Ð°ÑеннÑ. Щоб оÑÑимаÑи ÑÑ ÑÐºÐ»Ð°Ð´Ð¾Ð²Ñ Ð¼Ð°ÑÐ¸Ð²Ñ Ñ Ð·Ð²ÐµÑÑаÑиÑÑ Ð´Ð¾ Ð½Ð¸Ñ Ð¾ÐºÑемо найÑаÑÑÑÑе поÑÑÑбен ÑнÑий пÑÐ´Ñ Ñд. Цикл for..in â один з ÑÐ°ÐºÐ¸Ñ Ð¿ÑÐ´Ñ Ð¾Ð´Ñв.
ХоÑоÑим пÑикладом поÑлÑжиÑÑ ÑÑвоÑений Ð¼Ð½Ð¾Ñ Ð² попеÑеднÑй ÑÑаÑÑÑ Ð¾Ð±’ÑÐºÑ CSS квÑÑÑв. JSON маÑив поÑинаÑÑÑÑÑ Ñак:
var cssColors = { «aliceblue»: «#f0f8ff», «antiquewhite»: «#faebd7», «aqua»: «#00ffff», «aquamarine»: «#7fffd4», «azure»: «#f0ffff», … }
Щоб ÑÑвоÑиÑи дÑагÑÐ°Ð¼Ñ CSS квÑÑÑв Ð´Ð»Ñ ÑÑÑÑ ÑÑаÑÑÑ, Ð¼ÐµÐ½Ñ Ð¿Ð¾ÑÑÑбно бÑло пÑойÑи в ÑÐ¸ÐºÐ»Ñ Ð¿Ð¾ об’ÑкÑÑ: ÑнÑими Ñловами, оÑÑимаÑи пеÑеÑÐ°Ñ Ð¾Ð²Ð°Ð½Ñ Ð²Ð»Ð°ÑÑивоÑÑÑ Ð¼Ð°ÑивÑ. Це легко можна зÑобиÑи за Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ Ð²Ð°ÑÑаÑÑÑ ÑÐ¸ÐºÐ»Ñ for з ÑаÑÑÐ¸Ð½ÐºÐ¾Ñ in:
for (var key in cssColors) { … }
ÐмÑÐ½Ð½Ñ key можна назваÑи Ñк завгодно (бÑдÑ-Ñке пÑÐ´Ñ Ð¾Ð´ÑÑе Ñлово), в нÑй бÑде збеÑÑгаÑиÑÑ Ð²Ð»Ð°ÑÑивÑÑÑÑ. ÐÐ»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ ÑезÑлÑÑаÑÑ Ð² конÑÐ¾Ð»Ñ Ð´Ð»Ñ ÑеÑÑÑ Ð¼Ð¾Ð¶Ð½Ð° змÑниÑи ÑкÑипÑ:
for (var key in cssColors) { console.log(key) }
Ðи оÑÑимаÑÑе наÑÑÑпне:
aliceblue antiquewhite aqua aquamarine azure …
ЯкÑо ви Ñ Ð¾ÑеÑе додаÑи знаÑÐµÐ½Ð½Ñ Ð²Ð»Ð°ÑÑивоÑÑÑ Ð²Ð¸Ñновок, можна додаÑи ÐºÐ¾Ð¼Ñ Ñа об’ÑÐºÑ Ð· клÑÑем:
for (var key in cssColors) { console.log(key, cssColors[key]) }
РезÑлÑÑаÑ:
aliceblue #f0f8ff antiquewhite #faebd7 aqua #00ffff aquamarine #7fffd4 azure #f0ffff
Ðа ÑÑй оÑÐ½Ð¾Ð²Ñ Ð¼Ð¾Ð¶Ð½Ð° ÑÑвоÑиÑи майже бÑдÑ-ÑÐºÑ ÐºÐ¾Ð½ÑÑÑÑкÑÑÑ: подивÑÑÑÑÑ Ð¿Ñиклад демо з Ñменованими CSS квÑÑами на CodePen.
ÐепÑавилÑне викоÑиÑÑÐ°Ð½Ð½Ñ Ñа Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ
ÐÑобливÑÑÑÑ ÑÐ¸ÐºÐ»Ñ for..in в ÑомÑ, Ñо вÑн може пеÑеÑÐ°Ñ Ð¾Ð²ÑваÑи ÑÑÐ¿Ð°Ð´ÐºÐ¾Ð²Ð°Ð½Ñ Ð²Ð»Ð°ÑÑивоÑÑÑ, а не ÑÑлÑки ÑÑ, ÑÐºÑ Ð²Ð¸ оÑÑкÑÑÑе побаÑиÑи в об’ÑкÑÑ. ÐÐ°Ñ Ð¸ÑÑиÑиÑÑ Ð²Ñд ÑÑого можна з Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ ÑеÑÑÑ hasOwnProperty:
for (var key in cssColors) { if (cssColors.hasOwnProperty(key)) { … do something … } }
Ðана Ñмова пеÑевÑÑÑÑ, пÑиÑвоÑно влаÑÑивÑÑÑÑ Ð±ÐµÐ·Ð¿Ð¾ÑеÑеднÑо об’ÑкÑÑ, Ñ Ð²Ð¸Ð²Ð¾Ð´Ð¸ÑÑ Ð¹Ð¾Ð³Ð¾, ÑкÑо воно ÑÑдне. У ÑÐ¸ÐºÐ»Ñ for..in можÑÑÑ Ð²Ð¸Ð½Ð¸ÐºÐ½ÑÑи пÑоблеми з маÑивами з поÑожнÑми ÑлоÑами. ÐагалÑне пÑавило â не ваÑÑо додаваÑи, видалÑÑи або змÑнÑваÑи влаÑÑивоÑÑÑ Ð² маÑÐ¸Ð²Ñ Ð¿Ñд ÑÐ°Ñ Ð¹Ð¾Ð³Ð¾ пеÑебоÑÑ.
JSON маÑив ÑкладаÑÑÑÑÑ Ð· безлÑÑÑ Ð¾Ð±’ÑкÑÑв, Ñ ÑозглÑдаÑи його поÑÑÑбно ÑÑÐ¾Ñ Ð¸ по-ÑнÑомÑ. ÐÑлÑÑ Ð´ÐµÑалÑно пÑо JSON маÑÐ¸Ð²Ð°Ñ Ñ ÑозповÑм в наÑÑÑпнÑй ÑÑаÑÑÑ.