Ð¦Ð¸ÐºÐ»Ñ - пÑоÑÑой ÑпоÑоб ÑделаÑÑ ÐºÐ°ÐºÐ¾Ðµ-Ñо дейÑÑвие неÑколÑко Ñаз. ÐÑа глава ÑÑководÑÑва JavaScript Guide Ð¿Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð¸Ñ Ð²Ð°Ñ Ñ ÑазлиÑнÑми опеÑаÑоÑами доÑÑÑпнÑми в JavaScript.
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑедÑÑавиÑÑ Ñикл в виде компÑÑÑеÑизиÑованной веÑÑии игÑÑ, где Ð²Ñ Ð³Ð¾Ð²Ð¾ÑиÑе комÑ-Ñо ÑделаÑÑ X Ñагов в одном напÑавлении, заÑем Y Ñагов в дÑÑгом; Ð´Ð»Ñ Ð¿ÑимеÑа, Ð¸Ð´ÐµÑ Ð¸Ð³ÑÑ "Ðди 5 Ñагов на воÑÑок" Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²ÑÑажена в виде Ñикла:
var step;
for (step = 0; step < 5; step++) {
// ÐапÑÑкаеÑÑÑ 5 Ñаз, Ñ Ñагом Ð¾Ñ 0 до 4.
console.log("ÐдÑм 1 Ñаг на воÑÑок");
}
СÑÑеÑÑвÑÐµÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво ÑазлиÑнÑÑ Ð²Ð¸Ð´Ð¾Ð² Ñиклов, но вÑе они по ÑÑÑи делаÑÑ Ñоже Ñамое: повÑоÑÑÑÑ ÐºÐ°ÐºÐ¾Ðµ-либо дейÑÑвие неÑколÑко Ñаз (не забÑвайÑе пÑо нÑлевой Ñаз повÑоÑениÑ, оÑÑÑÑÑ Ð² маÑÑиве наÑинаеÑÑÑ Ñ 0). РазлиÑнÑе по ÑÑÑÐ¾ÐµÐ½Ð¸Ñ ÑÐ¸ÐºÐ»Ñ Ð¿ÑедлагаÑÑ ÑазнÑе ÑпоÑÐ¾Ð±Ñ Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½Ð°Ñала и оконÑÐ°Ð½Ð¸Ñ Ñикла. ÐÐ»Ñ ÑазлиÑнÑÑ Ð·Ð°Ð´Ð°Ñ Ð¿ÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑеÑÑвÑÑÑ Ñвои опеÑаÑоÑÑ Ñикла, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾ÑоÑÑÑ Ð¾Ð½Ð¸ ÑеÑаÑÑÑÑ Ð½Ð°Ð¼Ð½Ð¾Ð³Ð¾ пÑоÑе.
ÐпеÑаÑоÑÑ Ð¿ÑедназнаÑеннÑе Ð´Ð»Ñ Ð¾ÑганизаÑии Ñиклов в JavaScript:
Циклfor
Цикл for
повÑоÑÑÐµÑ Ð´ÐµÐ¹ÑÑвиÑ, пока не пÑоизойдÑÑ ÐºÐ°ÐºÐ¾Ðµ-либо ÑпеÑиалÑное ÑобÑÑие завеÑÑÐµÐ½Ð¸Ñ Ñикла. ÐпеÑаÑÐ¾Ñ for
в JavaScript аналогиÑен опеÑаÑоÑÑ for в Java и C. ÐбÑÑвление опеÑаÑоÑа for
вÑглÑÐ´Ð¸Ñ ÑледÑÑÑим обÑазом:
for ([наÑало]; [ÑÑловие]; [Ñаг]) вÑÑажениÑ
ÐÑи его вÑполнении пÑоиÑÑ Ð¾Ð´Ð¸Ñ ÑледÑÑÑее:
наÑало
, еÑли оно Ñказано. ÐÑо вÑÑажение обÑÑно иниÑиализиÑÑÐµÑ Ð¾Ð´Ð¸Ð½ или неÑколÑко ÑÑÑÑÑиков, но ÑинÑакÑÐ¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð²ÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð±ÑÑÑ Ð»Ñбой ÑложноÑÑи. Также иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð¾Ð±ÑÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑÑ
.ÑÑловие
. ÐÑли ÑÑловие
иÑÑинно, Ñо вÑполнÑÑÑÑÑ Ð²ÑÑажениÑ
. ÐÑли оно ложно, Ñикл for
пÑеÑÑваеÑÑÑ. ÐÑли же ÑÑловие
полноÑÑÑÑ Ð¿ÑопÑÑено, Ñо оно ÑÑиÑаеÑÑÑ Ð¸ÑÑиннÑм.вÑÑажениÑ
. ЧÑÐ¾Ð±Ñ Ð²ÑполниÑÑ Ð½ÐµÑколÑко вÑÑажений, иÑполÑзÑÑÑÑÑ Ð±Ð»Ð¾Ðº-вÑÑажение { ... }
Ð´Ð»Ñ Ð³ÑÑппиÑовки вÑÑажений.Ñаг
, еÑли он еÑÑÑ, а заÑем ÑпÑавление возвÑаÑаеÑÑÑ Ðº ÑÐ°Ð³Ñ 2.Ð ÑледÑÑÑей ÑÑнкÑии еÑÑÑ Ñикл for
, коÑоÑÑй ÑÑиÑÐ°ÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво вÑбÑаннÑÑ
жанÑов в ÑпиÑке пÑокÑÑÑки (ÑÐ»ÐµÐ¼ÐµÐ½Ñ <select>
, коÑоÑÑй позволÑÐµÑ Ð²ÑбÑаÑÑ Ð½ÐµÑколÑко ÑлеменÑов). Цикл for
обÑÑвлÑÐµÑ Ð¿ÐµÑеменнÑÑ i
и задаÑÑ ÐµÐ¹ знаÑение 0. Также он пÑовеÑÑеÑ, ÑÑо i
менÑÑе колиÑеÑÑва ÑлеменÑов в ÑлеменÑе <select>
, вÑполнÑÐµÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ if
и ÑвелиÑÐ¸Ð²Ð°ÐµÑ i
на один поÑле каждого пÑоÑ
ода Ñикла.
<form name="selectForm">
<p>
<label for="musicTypes"
>ÐÑбеÑиÑе некоÑоÑÑе жанÑÑ Ð¼ÑзÑки, а заÑем нажмиÑе на ÐºÐ½Ð¾Ð¿ÐºÑ Ð½Ð¸Ð¶Ðµ:</label
>
<select id="musicTypes" name="musicTypes" multiple="multiple">
<option selected="selected">R&B</option>
<option>Jazz</option>
<option>Blues</option>
<option>New Age</option>
<option>Classical</option>
<option>Opera</option>
</select>
</p>
<p><input id="btn" type="button" value="Ðак много вÑбÑано?" /></p>
</form>
<script>
function howMany(selectObject) {
var numberSelected = 0;
for (var i = 0; i < selectObject.options.length; i++) {
if (selectObject.options[i].selected) {
numberSelected++;
}
}
return numberSelected;
}
var btn = document.getElementById("btn");
btn.addEventListener("click", function () {
alert("ÐÑбÑано ÑлеменÑов: " + howMany(document.selectForm.musicTypes));
});
</script>
Цикл do...while
Цикл do...while
повÑоÑÑеÑÑÑ Ð¿Ð¾ÐºÐ° заданное ÑÑловие иÑÑинно. ÐпеÑаÑÐ¾Ñ do...while
Ð¸Ð¼ÐµÐµÑ Ð²Ð¸Ð´:
do вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ while (ÑÑловие);
вÑÑажениÑ
вÑполнÑÑÑÑÑ Ð¿Ð¾ÐºÐ° ÑÑловие
иÑÑинно. ЧÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ Ð½ÐµÑколÑко вÑÑажений, иÑполÑзÑйÑе блок-вÑÑажение { ... }
, ÑÑÐ¾Ð±Ñ ÑгÑÑппиÑоваÑÑ Ð¸Ñ
. ÐÑли ÑÑловие
иÑÑинно, вÑÑажениÑ
вÑполнÑÑÑÑ Ñнова. РконÑе каждого пÑоÑ
ода ÑÑловие
пÑовеÑÑеÑÑÑ. ÐÑли ÑÑловие
ложно, вÑполнение пÑиоÑÑанавливаеÑÑÑ Ð¸ ÑпÑавление пеÑедаÑÑÑÑ Ð²ÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле do...while
.
Ð ÑледÑÑÑем пÑимеÑе, Ñикл do
вÑполниÑÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ñм 1 Ñаз и запÑÑкаеÑÑÑ Ñнова, пока i
менÑÑе 5.
do {
i += 1;
console.log(i);
} while (i < 5);
Цикл while
Цикл while
вÑполнÑÐµÑ Ð²ÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ° ÑÑловие иÑÑинно. ÐÑглÑÐ´Ð¸Ñ Ð¾Ð½ Ñак:
while (ÑÑловие) вÑÑажениÑ
ÐÑли ÑÑловие
ÑÑановиÑÑÑ Ð»Ð¾Ð¶Ð½Ñм, вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² Ñикле пеÑеÑÑаÑÑ Ð²ÑполнÑÑÑÑÑ Ð¸ ÑпÑавление пеÑеÑ
Ð¾Ð´Ð¸Ñ Ðº вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле Ñикла.
УÑловие
пÑовеÑÑеÑÑÑ Ð½Ð° иÑÑинноÑÑÑ Ð´Ð¾ Ñого, как вÑполнÑÑÑÑÑ Ð²ÑÑажениÑ
в Ñикле. ÐÑли ÑÑловие
иÑÑинно, вÑполнÑÑÑÑÑ Ð²ÑÑажениÑ
, а заÑем ÑÑловие пÑовеÑÑеÑÑÑ Ñнова. ÐÑли ÑÑловие
ложно, вÑполнение пÑиоÑÑанавливаеÑÑÑ Ð¸ ÑпÑавление пеÑеÑ
Ð¾Ð´Ð¸Ñ Ðº вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле while
.
ЧÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ Ð½ÐµÑколÑко вÑÑажений, иÑполÑзÑйÑе блок вÑÑажение { ... }
, ÑÑÐ¾Ð±Ñ ÑгÑÑппиÑоваÑÑ Ð¸Ñ
.
СледÑÑÑий Ñикл while
ÑабоÑаеÑ, пока n
менÑÑе ÑÑÑÑ
:
var n = 0;
var x = 0;
while (n < 3) {
n++;
x += n;
}
С каждой иÑеÑаÑией, Ñикл ÑвелиÑÐ¸Ð²Ð°ÐµÑ n
и добавлÑÐµÑ ÑÑо знаÑение к x
. ÐоÑÑомÑ, x
и n
полÑÑаÑÑ ÑледÑÑÑие знаÑениÑ:
n
= 1 и x
= 1n
= 2 и x
= 3n
= 3 и x
= 6ÐоÑле ÑÑеÑÑего пÑоÑ
ода, ÑÑловие n < 3
ÑÑановиÑÑÑ Ð»Ð¾Ð¶Ð½Ñм, поÑÑÐ¾Ð¼Ñ Ñикл пÑеÑÑваеÑÑÑ.
ÐзбегайÑе беÑконеÑнÑÑ
Ñиклов. УбедиÑеÑÑ, ÑÑо ÑÑловие Ñикла в иÑоге ÑÑÐ°Ð½ÐµÑ Ð»Ð¾Ð¶Ð½Ñм; инаÑе, Ñикл никогда не пÑеÑвÑÑÑÑ. ÐÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² ÑледÑÑÑем Ñикле while
бÑдÑÑ Ð²ÑполнÑÑÑÑÑ Ð²ÐµÑно, Ñ.к. ÑÑловие никогда не ÑÑÐ°Ð½ÐµÑ Ð»Ð¾Ð¶Ð½Ñм:
while (true) {
console.log("Hello, world");
}
ÐеÑка (label)
ÐеÑка пÑедÑÑавлÑÐµÑ Ñобой опеÑаÑÐ¾Ñ Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑом, коÑоÑÑй позволÑÐµÑ Ð²Ð°Ð¼ ÑÑÑлаÑÑÑÑ Ð½Ð° какое-Ñо меÑÑо в ваÑей пÑогÑамме. ÐапÑимеÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¼ÐµÑкÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°ÑиÑÑ Ñикл, а заÑем иÑполÑзоваÑÑ Ð¾Ð¿ÐµÑаÑоÑÑ break
или continue
, ÑÑÐ¾Ð±Ñ ÑказаÑÑ, должна ли пÑогÑамма пÑеÑÑваÑÑ Ñикл или пÑодолжаÑÑ ÐµÐ³Ð¾ вÑполнение.
СинÑакÑÐ¸Ñ Ð¼ÐµÑки ÑледÑÑÑий:
меÑка : опеÑаÑоÑ
ÐнаÑение меÑки Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»ÑбÑм коÑÑекÑнÑм JavaScript иденÑиÑикаÑоÑом, не ÑвлÑÑÑимÑÑ Ð·Ð°ÑезеÑвиÑованнÑм Ñловом. ÐпеÑаÑоÑ
, ÑказаннÑй вами поÑле меÑки Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»ÑбÑм вÑÑажением.
Ð ÑÑом пÑимеÑе, меÑка markLoop
обознаÑÐ°ÐµÑ Ñикл while
.
markLoop: while (theMark == true) {
doSomething();
}
break
ÐÑполÑзÑйÑе опеÑаÑÐ¾Ñ break
, ÑÑÐ¾Ð±Ñ Ð¿ÑеÑÑваÑÑ Ñикл, пеÑеклÑÑаÑÑ ÑпÑавление или в ÑоÑеÑании Ñ Ð¾Ð¿ÐµÑаÑоÑом меÑка.
break
без меÑки, он пÑеÑÑÐ²Ð°ÐµÑ ÑÐ¸ÐºÐ»Ñ while
, do-while
и for
или ÑÑÐ°Ð·Ñ Ð¿ÐµÑеклÑÑÐ°ÐµÑ ÑпÑавление к ÑледÑÑÑÐµÐ¼Ñ Ð²ÑÑажениÑ.break
Ñ Ð¼ÐµÑкой, он пÑеÑÑÐ²Ð°ÐµÑ ÑпеÑиалÑно оÑмеÑенное вÑÑажение.СинÑакÑÐ¸Ñ Ð¾Ð¿ÐµÑаÑоÑа Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñаким:
break;
break ÐеÑка;
ÐеÑÐ²Ð°Ñ ÑоÑма ÑинÑакÑиÑа пÑеÑÑÐ²Ð°ÐµÑ Ñикл ÑовÑем или пеÑеклÑÑÐ°ÐµÑ ÑпÑавление; вÑоÑÐ°Ñ Ð¿ÑеÑÑÐ²Ð°ÐµÑ ÑпеÑиалÑно обознаÑенное вÑÑажение.
ÐÑÐ¸Ð¼ÐµÑ 1СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð¿ÑоÑ
Ð¾Ð´Ð¸Ñ Ð¿Ð¾ ÑлеменÑам в маÑÑиве, пока не найдÑÑ ÑлеменÑ, ÑÑÑ Ð·Ð½Ð°Ñение - theValue
:
for (i = 0; i < a.length; i++) {
if (a[i] == theValue) {
break;
}
}
ÐÑÐ¸Ð¼ÐµÑ 2: ÐÑеÑÑвание меÑки
var x = 0;
var z = 0;
labelCancelLoops: while (true) {
console.log("ÐнеÑний Ñикл: " + x);
x += 1;
z = 1;
while (true) {
console.log("ÐнÑÑÑенний Ñикл: " + z);
z += 1;
if (z === 10 && x === 10) {
break labelCancelLoops;
} else if (z === 10) {
break;
}
}
}
continue
ÐпеÑаÑÐ¾Ñ continue
иÑполÑзÑеÑÑÑ, ÑÑÐ¾Ð±Ñ ÑагнÑÑÑ Ð½Ð° Ñаг впеÑÑд в ÑиклаÑ
while
, do-while
, for
или пеÑейÑи к меÑке.
continue
без меÑки, он пÑеÑÑÐ²Ð°ÐµÑ ÑекÑÑÑÑ Ð¸ÑеÑаÑÐ¸Ñ Ñиклов while
, do-while
и for
и пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð²Ñполнение Ñикла Ñо ÑледÑÑÑей иÑеÑаÑии. РоÑлиÑие Ð¾Ñ break
, continue
не пÑеÑÑÐ²Ð°ÐµÑ Ð²Ñполнение Ñикла полноÑÑÑÑ. Ð Ñикле while
он пÑÑÐ³Ð°ÐµÑ Ðº ÑÑловиÑ. Рв for
ÑвелиÑÐ¸Ð²Ð°ÐµÑ Ñаг
.continue
Ñ Ð¼ÐµÑкой, он пÑименÑеÑÑÑ Ðº ÑÐ¸ÐºÐ»Ñ Ñ ÑÑой меÑкой.СинÑакÑÐ¸Ñ continue
Ð¼Ð¾Ð¶ÐµÑ Ð²ÑглÑдеÑÑ Ñак:
continue;
continue
ÐеÑка ;
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÐºÐ°Ð·ÑÐ²Ð°ÐµÑ Ñикл while
Ñ Ð¾Ð¿ÐµÑаÑоÑом continue
, коÑоÑÑй ÑÑабаÑÑваеÑ, когда знаÑение i
Ñавно 3. Таким обÑазом, n
полÑÑÐ°ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ 1, 3, 7 и 12.
var i = 0;
var n = 0;
while (i < 5) {
i++;
if (i == 3) {
continue;
}
n += i;
}
ÐÑÐ¸Ð¼ÐµÑ 2
ÐÑÑажение, оÑмеÑенное checkiandj
ÑодеÑÐ¶Ð¸Ñ Ð²ÑÑажение оÑмеÑенное checkj
. ÐÑи вÑÑÑеÑе Ñ continue
, пÑогÑамма пÑеÑÑÐ²Ð°ÐµÑ ÑекÑÑÑÑ Ð¸ÑеÑаÑÐ¸Ñ checkj
и наÑÐ¸Ð½Ð°ÐµÑ ÑледÑÑÑÑÑ Ð¸ÑеÑаÑиÑ. ÐаждÑй Ñаз пÑи вÑÑÑеÑе Ñ continue
, checkj
пеÑеÑ
Ð¾Ð´Ð¸Ñ Ð½Ð° ÑледÑÑÑÑÑ Ð¸ÑеÑаÑиÑ, пока ÑÑловие возвÑаÑÐ°ÐµÑ false
. Ðогда возвÑаÑаеÑÑÑ false
, поÑле вÑÑиÑÐ»ÐµÐ½Ð¸Ñ Ð¾ÑÑаÑка Ð¾Ñ Ð´ÐµÐ»ÐµÐ½Ð¸Ñ checkiandj
, checkiandj
пеÑеÑ
Ð¾Ð´Ð¸Ñ Ð½Ð° ÑледÑÑÑÑÑ Ð¸ÑеÑаÑиÑ, пока его ÑÑловие возвÑаÑÐ°ÐµÑ false
. Ðогда возвÑаÑаеÑÑÑ false
, пÑогÑамма пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð²Ñполнение Ñ Ð²ÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле checkiandj
.
ÐÑли Ñ continue
пÑоÑÑавлена меÑка checkiandj
, пÑогÑамма Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑодолжиÑÑÑÑ Ñ Ð½Ð°Ñала меÑки checkiandj
.
checkiandj: while (i < 4) {
console.log(i);
i += 1;
checkj: while (j > 4) {
console.log(j);
j -= 1;
if (j % 2 != 0) {
continue checkj;
}
console.log(j + " ÑÑÑное.");
}
console.log("i = " + i);
console.log("j = " + j);
}
for...in
ÐпеÑаÑÐ¾Ñ for...in
пÑоÑ
Ð¾Ð´Ð¸Ñ Ð¿Ð¾ вÑем пеÑеÑиÑлимÑм ÑвойÑÑвам обÑекÑа. JavaScript вÑÐ¿Ð¾Ð»Ð½Ð¸Ñ ÑказаннÑе вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ оÑделÑного ÑвойÑÑва. Цикл for...in
вÑглÑÐ´Ð¸Ñ Ñак:
for (variable in object) { вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ }ÐÑимеÑ
СледÑÑÑÐ°Ñ ÑÑнкÑÐ¸Ñ Ð±ÐµÑÑÑ Ñвоим аÑгÑменÑом обÑÐµÐºÑ Ð¸ его имÑ. ÐаÑем пÑÐ¾Ñ Ð¾Ð´Ð¸Ñ Ð¿Ð¾ вÑем ÑвойÑÑвам обÑекÑа и возвÑаÑÐ°ÐµÑ ÑÑÑокÑ, коÑоÑÐ°Ñ ÑодеÑÐ¶Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð° ÑвойÑÑв и Ð¸Ñ Ð·Ð½Ð°ÑениÑ.
function dump_props(obj, obj_name) {
var result = "";
for (var i in obj) {
result += obj_name + "." + i + " = " + obj[i] + "<br>";
}
result += "<hr>";
return result;
}
ÐÐ»Ñ Ð¾Ð±ÑекÑа car
Ñо ÑвойÑÑвами make
и model
, ÑезÑлÑÑаÑом бÑдеÑ:
car.make = Ford;
car.model = Mustang;
ÐÑÐ¸Ð¼ÐµÑ â2
Также, по клÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ вÑводиÑÑ Ð·Ð½Ð°Ñение:
let obj = {model: 'AUDI A8', year: '2019', color: 'brown'} for (key in obj) { console.log(`${key} = ${obj[key]}`); } // model = AUDI A8 // year = 2019 // color = brownÐаÑÑивÑ
ХоÑÑ, оÑÐµÐ½Ñ Ð·Ð°Ð¼Ð°Ð½Ñиво иÑполÑзоваÑÑ for...in как ÑпоÑоб пÑойÑиÑÑ Ð¿Ð¾ вÑем ÑлеменÑам Array
, ÑÑÐ¾Ñ Ð¾Ð¿ÐµÑаÑÐ¾Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð¸Ð¼Ñ ÑвойÑÑв опÑеделÑннÑÑ
полÑзоваÑелем помимо ÑиÑловÑÑ
индекÑов. Таким обÑазом лÑÑÑе иÑполÑзоваÑÑ ÑÑандаÑÑнÑй for
Ð´Ð»Ñ ÑиÑловÑÑ
индекÑов пÑи взаимодейÑÑвии Ñ Ð¼Ð°ÑÑивами, поÑколÑÐºÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ for...in пÑоÑ
Ð¾Ð´Ð¸Ñ Ð¿Ð¾ опÑеделÑннÑм полÑзоваÑелем ÑвойÑÑвам в дополнение к ÑлеменÑам маÑÑива, еÑли Ð²Ñ Ð¸Ð·Ð¼ÐµÐ½ÑеÑе маÑÑив, напÑимеÑ, добавлÑеÑе ÑвойÑÑва и меÑодÑ.
let arr = ["AUDI A8", "2019", "brown"];
arr.cost = "$100.000";
for (key in arr) {
console.log(`${key} = ${arr[key]}`);
}
// 0 = AUDI A8
// 1 = 2019
// 2 = brown
// cost = $100.000
for...of
ÐпеÑаÑÐ¾Ñ for...of
ÑоздаÑÑ Ñикл, пÑоÑ
одÑÑий по пеÑеÑиÑлимÑм обÑекÑам (вклÑÑÐ°Ñ Array
, Map
, Set
, обÑÐµÐºÑ arguments и Ñак далее), вÑзÑÐ²Ð°Ñ Ð½Ð° каждой иÑеÑаÑии ÑÑнкÑÐ¸Ñ Ñ Ð²ÑÑажениÑми, коÑоÑÑе надо вÑполниÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ оÑделÑного ÑвойÑÑва.
for (variable of object) { вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ }
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÐºÐ°Ð·ÑÐ²Ð°ÐµÑ ÑазниÑÑ Ð¼ÐµÐ¶Ð´Ñ Ñиклами for...of
и for...in
. Тогда как for...in
пÑоÑ
Ð¾Ð´Ð¸Ñ Ð¿Ð¾ именам ÑвойÑÑв, for...of
пÑоÑ
Ð¾Ð´Ð¸Ñ Ð¿Ð¾ знаÑениÑм ÑвойÑÑв:
let arr = [3, 5, 7];
arr.foo = "hello";
for (let i in arr) {
console.log(i); // вÑÐ²Ð¾Ð´Ð¸Ñ "0", "1", "2", "foo"
}
for (let i of arr) {
console.log(i); // вÑÐ²Ð¾Ð´Ð¸Ñ "3", "5", "7"
}
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4