ã«ã¼ãã¨å復å¦ç
ã«ã¼ãã¯ãä½ããç¹°ãè¿ãã¦è¡ãæè»½ã§ç°¡åãªæ¹æ³ãæä¾ãã¾ãã JavaScript ã¬ã¤ãã®æ¬ç« ã§ã¯ã JavaScript ã§å©ç¨å¯è½ãªå復å¦çãè¡ãæ°ã ã®å復æãç´¹ä»ãã¾ãã
ã«ã¼ãã¯ãããæ¹åã« X æ©é²ã¿ã次ã«å¥ã®æ¹åã« Y æ©é²ãããã«èª°ãã«æç¤ºããã²ã¼ã ãã³ã³ãã¥ã¼ã¿ã¼åããçã¨èãããã¨ãã§ãã¾ããä¾ãã°ãã西㫠5 æ©é²ããã¨ããæ¦å¿µã¯ã«ã¼ãã¨ãã¦ãä¸è¨ã®ããã«è¡¨ç¾ã§ãã¾ãã
for (let step = 0; step < 5; step++) {
// å¤ã 0 ãã 4 ã¾ã§è¨ 5 åå®è¡ããã
console.log("䏿©è¥¿ã«æ©ã");
}
ã«ã¼ãã«ã¯æ§ã ãªç¨®é¡ãããã¾ãããæ¬è³ªçã«ã¯ãããã¯ãã¹ã¦åããã¨ããã¦ãã¾ãã ä½ããã®è¡çºãããåæ°ç¹°ãè¿ãã¨ãããã¨ã§ãï¼ãã ããã®åæ°ãã¼ãã¨ãããã¨ããããã¾ãï¼ã
æ§ã ãªã«ã¼ãæ©æ§ãåå¨ãããã¨ã«ãã£ã¦ãè²ã ãªæ¹æ³ã§ã«ã¼ãã®éå§ç¹ã¨çµäºç¹ã決å®ãããã¨ãã§ãã¾ããããã«ã¼ãã®æ¹ãå¥ã®ç¨®é¡ã®ã«ã¼ãããç°¡åã«ç®çãæããããã¨ããç¶æ³ã¯ããããããã¾ãã
JavaScript ã§æä¾ãããã«ã¼ãæã¯ä»¥ä¸ã®ã¨ããã§ãã
for æ
for æã«ããã«ã¼ãã¯æå®ãããæ¡ä»¶ã false ã¨è©ä¾¡ãããã¾ã§ç¹°ãè¿ããã¾ããJavaScript ã® for ã«ã¼ã㯠Java ã C è¨èªã® for ã«ã¼ãã¨åãã§ãã
for æã¯ä»¥ä¸ã®ãããªå½¢ã§ãã
for (åæåå¼; æ¡ä»¶å¼; å ç®å¼)
æ
for ã«ã¼ããå®è¡ãããã¨ããæ¬¡ã®å¦çãè¡ããã¾ãã
- ããããã°ã
åæåå¼ãå®è¡ããã¾ãããã®å¼ã¯é常ã1 åã¾ãã¯ãã以ä¸ã®ã«ã¼ãã«ã¦ã³ã¿ã¼ãåæåãã¾ããããã®æ§æã§ã¯ãããªãã¬ãã«ã®è¤éãªå¼ãå ¥ãããã¨ãå¯è½ã§ããåæåå¼ã§å¤æ°ã宣è¨ãããã¨ãã§ãã¾ãã æ¡ä»¶å¼ãè©ä¾¡ããã¾ããæ¡ä»¶å¼ã®å¤ãçã®å ´åãã«ã¼ãæãå®è¡ããã¾ããæ¡ä»¶å¼ã®å¤ãå½ã®å ´åãforã«ã¼ãã¯çµäºãã¾ããï¼æ¡ä»¶å¼ããã¹ã¦çç¥ããã¦ããå ´åãæ¡ä»¶å¼ã¯çã§ããã¨ã¿ãªããã¾ããï¼æãå®è¡ããã¾ããè¤æ°ã®æãå®è¡ããã«ã¯ããããã®æãã°ã«ã¼ãåããããã«ãããã¯æ ({ }) ã使ç¨ãã¾ãã- ããããã°ã
å ç®å¼ãå®è¡ããã¾ãã - ã¹ããã 2 ã«å¶å¾¡ãæ»ãã¾ãã
ä¾
ä¾ãã°ä¸è¨ã®ä¾ã«ã¯ for æããããã¹ã¯ãã¼ã«ãªã¹ãï¼è¤æ°é¸æãå¯è½ãª <select> è¦ç´ ï¼ã§é¸æããããªãã·ã§ã³ã®æ°å¤ãã«ã¦ã³ããã¦ãã¾ãã
HTML
<form name="selectForm">
<label for="musicTypes"
>好ããªé³æ¥½ã®ã¸ã£ã³ã«ãããã¤ãé¸ã³ãä¸ã®ãã¿ã³ãã¯ãªãã¯ãã¦ãã ããã</label
>
<select id="musicTypes" name="musicTypes" multiple>
<option selected>R&B</option>
<option>Jazz</option>
<option>Blues</option>
<option>New Age</option>
<option>Classical</option>
<option>Opera</option>
</select>
<button id="btn" type="button">How many are selected?</button>
</form>
JavaScript
ããã§ã¯ã for æã夿° i ã宣è¨ãã 0 ã«åæåãã¾ãã i ã <select> è¦ç´ ã®ãªãã·ã§ã³æ°æªæºã§ãããã¨ã確èªããå¾ç¶ã® if æãå®è¡ããã«ã¼ãå
ãä¸éãå®è¡ããå¾ã« i ã 1 ãã¤å ç®ãã¾ãã
function countSelected(selectObject) {
let numberSelected = 0;
for (let i = 0; i < selectObject.options.length; i++) {
if (selectObject.options[i].selected) {
numberSelected++;
}
}
return numberSelected;
}
const btn = document.getElementById("btn");
btn.addEventListener("click", () => {
const musicTypes = document.selectForm.musicTypes;
console.log(`You have selected ${countSelected(musicTypes)} option(s).`);
});
do...while æ
do...while æã¯æå®ãããæ¡ä»¶ãå½ã«ãªãã¾ã§ç¹°ãè¿ãã¾ãã
do...while æã¯ä»¥ä¸ã®ãããªå½¢ã§ãã
do
æ
while (æ¡ä»¶å¼);
æã¯ãæ¡ä»¶å¼ããã§ãã¯ãããåã«ä¸åº¦ãã¤å®è¡ããã¾ããï¼è¤æ°ã®æãå®è¡ããã«ã¯ããããã¯æ ({ }) ã使ã£ã¦æãã°ã«ã¼ãåãã¾ããï¼
æ¡ä»¶å¼ã true ã®å ´åãæãåã³å®è¡ããã¾ããæã®å®è¡çµäºæã«æ¯åæ¡ä»¶ããã§ãã¯ããã¾ããæ¡ä»¶ã false ã®å ´åãå®è¡ã¯åæ¢ããå¶å¾¡ã¯ do...while ã®æ¬¡ã®æã«æ¸¡ãã¾ãã
ä¾
次ã®ä¾ã§ã¯ãdo ã«ã¼ãã¯å°ãªãã¨ãä¸åº¦ç¹°ãè¿ããã¾ãããã㦠i ã 5 æªæºã§ãªããªãã¾ã§ç¹°ãè¿ããã¾ãã
let i = 0;
do {
i += 1;
console.log(i);
} while (i < 5);
while æ
while æã¯æå®ãããæ¡ä»¶ã true ã¨è©ä¾¡ãããéãæãå®è¡ãã¾ãã while æã¯ä»¥ä¸ã®ããã«ãªãã¾ãã
while (æ¡ä»¶å¼)
æ
æ¡ä»¶å¼ã false ã¨ãªãå ´åãã«ã¼ãå
ã®æã¯å®è¡ã忢ããã«ã¼ãã«ç¶ãæã«å¶å¾¡ã渡ããã¾ãã
ã«ã¼ãå
ã®æãå®è¡ãããåã«æ¡ä»¶ãæ¤æ»ããã¾ããæ¡ä»¶ã true ãè¿ããå ´åãæãå®è¡ãããæ¡ä»¶ãåã³æ¤æ»ããã¾ããæ¡ä»¶ã false ãè¿ããå ´åãå®è¡ã¯åæ¢ãã while ã®æ¬¡ã®æã«å¶å¾¡ã渡ããã¾ãã
è¤æ°ã®æãå®è¡ããã«ã¯ããããã®æãã°ã«ã¼ãåãããããã¯æ ({ }) ã使ç¨ãã¾ãã
ä¾ 1
次ã®ä¾ã§ã¯ãwhile ã«ã¼ãã¯ãn ã 3 æªæºã®å ´åç¹°ãè¿ããã¾ãã
let n = 0;
let x = 0;
while (n < 3) {
n++;
x += n;
}
åå復ã§ãn ãã¤ã³ã¯ãªã¡ã³ãããããã®å¤ã x ã«å ç®ããã¾ãããã®ãããx 㨠n ã¯ä»¥ä¸ã®å¤ãã¨ãã¾ãã
- 1 åç®ã®åå¾©å¾ :
n=1,x=1 - 2 åç®ã®åå¾©å¾ :
n=2,x=3 - 3 åç®ã®åå¾©å¾ :
n=3,x=6
3 åç®ã®ééå®äºå¾ãæ¡ä»¶å¼ n < 3 ã¯ãã¯ã true ã§ã¯ãªããªããããã«ã¼ããçµäºãã¾ãã
ä¾ 2
ç¡éã«ã¼ãã¯é¿ãã¦ãã ãããã«ã¼ãå
ã®æ¡ä»¶ãæçµçã« false ã«ãªããã¨ã確ãããããã«ãã¾ãããããããªãã¨ãã«ã¼ãã¯æ°¸é ã«çµäºãã¾ãããæ¬¡ã® while ã«ã¼ãæã¯ãæ¡ä»¶ã決ã㦠false ã«ãªããªãã®ã§æ°¸é ã«å®è¡ããã¾ã :
// ç¡éã«ã¼ãã¯æª!
while (true) {
console.log("Hello, world!");
}
ã©ãã«ã¤ãæ
ã©ãã«ã使ã£ã¦ãããã°ã©ã å
ã®ä»ã®å ´æããåç
§ã§ããèå¥åãçµã¿è¾¼ãã æã使ã§ãã¾ããä¾ãã°ãã«ã¼ãã®èå¥ã«ã©ãã«ã使ãããã®ããã°ã©ã ã§ã«ã¼ãã䏿ããããå®è¡ãç¶ç¶ãããã©ãããæå®ããå ´åã«ãã©ãã«ã break æã continue æã§ä½¿ç¨ãããã¨ãã§ãã¾ãã
ã©ãã«æã®æ§æã¯ä»¥ä¸ã®ããã«ãªãã¾ãã
ã©ãã«:
æ
ã©ãã«ã®å¤ã«ã¯ãäºç´èªã§ãªããã°ãããã JavaScript èå¥åã使ç¨ã§ãã¾ããã©ãã«ã«ãã£ã¦èå¥ãããæã¯ã©ããªæã§ããã¾ãã¾ãããã©ãã«ä»ãæã®ä¾ã«ã¤ãã¦ã¯ãä¸è¨ã® break 㨠continue ã®ä¾ãåç
§ãã¦ãã ããã
break æ
break æã使ç¨ããã¨ãã«ã¼ããswitchãã©ãã«æã使ã£ãé¢é£ä»ããçµäºããããã¨ãã§ãã¾ãã
- ã©ãã«ãªãã§
breakã使ç¨ããã¨ãæãå å´ã®whileãdo-whileãforãswitchããã ã¡ã«çµäºããæ¬¡ã®æã«å¶å¾¡ãç§»ãã¾ãã - ã©ãã«ã¤ãã§
breakã使ç¨ããã¨ãæå®ããã©ãã«ã¤ãæãçµäºãã¾ãã
break æã®æ§æã¯ä¸è¨ã®ããã«ãªãã¾ãã
break;
break ã©ãã«;
- æåã®å½¢ã§ã¯æãå
å´ã®ã«ã¼ãã
switchãçµäºãã¾ã - 2 ã¤ç®ã®å½¢ã§ã¯æå®ããå¤å´ã®ã©ãã«ã¤ãæãçµäºãã¾ãã
ä¾ 1
次ã®ä¾ã§ã¯ãå¤ã theValue ã§ããè¦ç´ ã®ã¤ã³ããã¯ã¹ãæ¢ãã¾ã§é
åã®è¦ç´ ãå復ãã¾ãã
for (let i = 0; i < a.length; i++) {
if (a[i] === theValue) {
break;
}
}
ä¾ 2: ã©ãã«ã䏿
let x = 0;
let 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ãlabel æãåèµ·åããéã«ä½¿ç¨ããã¾ãã
- ã©ãã«ãªãã§
continueã使ç¨ããã¨ããã®æãå²ãã§ããæãå å´ã®whileãdo-whileãforæã«ããç¾å¨ã®å復ãçµäºããæ¬¡ã®å復ã®ã«ã¼ãã®å®è¡ãç¶ç¶ãã¾ããbreakæã¨ã¯å¯¾ç §çã«ãcontinueã¯å®å ¨ã«ã«ã¼ãã®å®è¡ãçµäºãã¾ãããwhileã«ã¼ãã®å ´åãæ¡ä»¶ã«ã¸ã£ã³ããã¾ããforã«ã¼ãã§ã¯ãå ç®å¼ã«ã¸ã£ã³ããã¾ãã - ã©ãã«ã¨ã¨ãã«
continueã使ç¨ããã¨ããã®åä½ããã®ã©ãã«ã«ãã£ã¦èå¥ãããã«ã¼ãæã«å¯¾ãã¦é©ç¨ããã¾ãã
continueæã®æ§æã¯ä¸è¨ã®ããã«ãªãã¾ãã
continue;
continue ã©ãã«;
ä¾ 1
次ã®ä¾ã§ã¯ãi ã®å¤ã 3 ã®ã¨ãã«å®è¡ããã continue æã使ç¨ããã while ã«ã¼ãã示ãã¦ãã¾ãããã®å ´åãn ã®å¤ã¯ 1ã3ã7ã12 ã¨ãªãã¾ãã
let i = 0;
let n = 0;
while (i < 5) {
i++;
if (i === 3) {
continue;
}
n += i;
console.log(n);
}
// ãã°åºå:
// 1 3 7 12
continue; ãã³ã¡ã³ãã¢ã¦ãããã¨ãã«ã¼ãã¯æ«å°¾ã¾ã§å®è¡ããã 1,3,6,10,15 ã¨ããçµæã«ãªãã¾ãã
ä¾ 2
次ã®ä¾ã§ã¯ãcheckIandJ ã¨ã©ãã«ä»ããããæã«ã¯ checkJ ã¨ã©ãã«ä»ããããæãå«ã¾ãã¦ãã¾ããcontinue æã«åºä¼ãã¨ãããã°ã©ã 㯠checkJ ã®ç¾å¨ã®å復ãçµäºã次ã®å復ãéå§ãã¾ããcontinue ã«åºä¼ããã³ã«ãcheckJ ã¯ãã®æ¡ä»¶ã false ãè¿ãã¾ã§ç¹°ãè¿ããã¾ããfalse ãè¿ãããã¨ãcheckIandJ ã®æ®ãã®é¨åãå®äºãããã®æ¡ä»¶ã false ãè¿ãã¾ã§ checkIandJ ãç¹°ãè¿ããã¾ããfalse ãè¿ãããã¨ãããã°ã©ã 㯠checkIandJ ã«ç¶ãæãç¶ç¶ãã¾ãã
ãã continue ã checkIandJ ã®ã©ãã«ãæã£ã¦ããã¨ãããã°ã©ã 㯠checkIandJ ã®ã©ãã«æã®å
é ããç¶ç¶ããã¾ãã
let i = 0;
let j = 10;
checkIandJ: while (i < 4) {
console.log(i);
i += 1;
checkJ: while (j > 4) {
console.log(j);
j -= 1;
if (j % 2 === 0) {
continue;
}
console.log(j, "is odd.");
}
console.log("i =", i);
console.log("j =", j);
}
for...in æ
for...in æã¯ãªãã¸ã§ã¯ãã«ãããã¹ã¦ã®åæå¯è½ãªããããã£ã«å¯¾ãæå®ããã夿°ãéãã¦å復å¦çãè¡ãã¾ããããããã®ç°ãªãããããã£ã«ãJavaScript ã¯æå®ãããæãå®è¡ãã¾ããfor...in æã¯ä¸è¨ã®ããã«ãªãã¾ãã
for (夿° in ãªãã¸ã§ã¯ã)
æ
ä¾
次ã®é¢æ°ã¯å¼æ°ã¨ãã¦ãªãã¸ã§ã¯ãã¨ããã®ãªãã¸ã§ã¯ãã®ååã表ãæååãåãã¾ãããããããã¹ã¦ã®ãªãã¸ã§ã¯ãã®ããããã£ã«å¯¾ãã¦å復å¦çããããããã£åã¨ãã®å¤ã表示ããæååãè¿ãã¾ãã
function dumpProps(obj, objName) {
let result = "";
for (const i in obj) {
result += `${objName}.${i} = ${obj[i]}<br>`;
}
result += "<hr>";
return result;
}
make ããããã£ã¨ model ããããã£ãæã¤ car ãªãã¸ã§ã¯ãã«å¯¾ããresult ã¯ä¸è¨ã®ããã«ãªãã¾ãã
car.make = Ford car.model = Mustang
é å
Array ã®è¦ç´ ã«å¯¾ãã¦å復å¦çãè¡ãæ¹æ³ã¨ãã¦ããã使ç¨ããããªãããããã¾ããããããã¯æ°å¤ã®ã¤ã³ããã¯ã¹ã«å ãã¦ã¦ã¼ã¶ã¼å®ç¾©ããããã£ã®ååãè¿ãã¾ãã
ãããã£ã¦ãé
åãç¹°ãè¿ãå¦çããå ´åã¯ãæ°å¤ã¤ã³ããã¯ã¹ã使ç¨ãã徿¥ã® for ã«ã¼ãã使ç¨ããæ¹ãè¯ãã§ãããããªããªããArray ãªãã¸ã§ã¯ãã夿´ããå ´åï¼ã«ã¹ã¿ã ããããã£ãã¡ã½ããã追å ããå ´åãªã©ï¼ã for...in æã¯é
åè¦ç´ ã«å ãã¦ãã¦ã¼ã¶ã¼å®ç¾©ããããã£ã«å¯¾ãã¦ãå復å¦çããããã§ãã
for...of æ
for...of æã¯ãå復å¯è½ãªãã¸ã§ã¯ãï¼ArrayãMapãSetãarguments ãªãã¸ã§ã¯ããªã©ãå«ãï¼ãå復å¦çããã«ã¼ããçæããããããã®ããããã£ã®å¤ã«å¯¾ãã¦å®è¡ãããæãã¨ããªã£ã¦ä½ãããå復å¦çããã¯ãå¼ã³åºãã¾ãã
for (夿° of ãªãã¸ã§ã¯ã)
æ
次ã®ä¾ã§ã¯ãfor...of ã«ã¼ã㨠for...in ã«ã¼ãã¨ã®éãã示ãã¦ãã¾ããfor...in ã¯ããããã£åã«å¯¾ãå復å¦çãã䏿¹ã for...of ã¯ããããã£ã®å¤ã«å¯¾ãã¦å復å¦çãã¾ãã
const arr = [3, 5, 7];
arr.foo = "hello";
for (const i in arr) {
console.log(i);
}
// "0" "1" "2" "foo"
for (const i of arr) {
console.log(i);
}
// Logs: 3 5 7
for...of ããã³ for...in æã¯ãæ§é åè§£ã§ã使ç¨ãããã¨ãã§ãã¾ããä¾ãã°ã Object.entries() ã使ç¨ãã¦ããªãã¸ã§ã¯ãã®ãã¼ã¨å¤ãåæã«å復å¦çãããã¨ãã§ãã¾ãã
const obj = { foo: 1, bar: 2 };
for (const [key, val] of Object.entries(obj)) {
console.log(key, val);
}
// "foo" 1
// "bar" 2