JavaScriptã®ã€ãã¬ãŒã¿ãã«ããŒãenumerateãã®å æ¬çã¬ã€ããã€ã³ããã¯ã¹ãšå€ã®ã¹ããªãŒã åŠçã«ãããå©ç¹ãšãçŸä»£ã®JavaScriptéçºã§ã®æŽ»çšæ³ãæ¢ããŸãã
JavaScriptã€ãã¬ãŒã¿ãã«ããŒ: Enumerate - ã€ã³ããã¯ã¹ãšå€ã®ã¹ããªãŒã åŠç
JavaScriptã¯çµ¶ããé²åããŠãããèšèªãžã®æè¿ã®è¿œå æ©èœãç¹ã«ã€ãã¬ãŒã¿ãã«ããŒã¯ãããŒã¿æäœãšåŠçã®ããã®åŒ·åãªæ°ããããŒã«ãæäŸããŸãããããã®ãã«ããŒã®äžã§ããenumerateã¯ãã€ã³ããã¯ã¹ãšå€ã®äž¡æ¹ãéèŠãªããŒã¿ã¹ããªãŒã ãæ±ãäžã§è²Žéãªè³ç£ãšããŠéç«ã£ãŠããŸãããã®èšäºã§ã¯ãenumerateã€ãã¬ãŒã¿ãã«ããŒã®å
æ¬çãªã¬ã€ããæäŸãããã®ãŠãŒã¹ã±ãŒã¹ãå©ç¹ããããŠçŸä»£ã®JavaScriptéçºã«ãããå®çšçãªå¿çšãæ¢ããŸãã
ã€ãã¬ãŒã¿ãšã€ãã¬ãŒã¿ãã«ããŒã®çè§£
enumerateã®è©³çްã«å
¥ãåã«ãJavaScriptã«ãããã€ãã¬ãŒã¿ãšã€ãã¬ãŒã¿ãã«ããŒã®ããåºãæèãçè§£ããããšãäžå¯æ¬ ã§ãã
ã€ãã¬ãŒã¿
ã€ãã¬ãŒã¿ãšã¯ãã·ãŒã±ã³ã¹ãå®çŸ©ããçµäºæã«æœåšçã«æ»ãå€ãæã€ãªããžã§ã¯ãã§ããããå
·äœçã«ã¯ãã€ãã¬ãŒã¿ã¯ã2ã€ã®ããããã£ãæã€ãªããžã§ã¯ããè¿ãnext()ã¡ãœãããæã€ããšã«ãã£ãŠã€ãã¬ãŒã¿ãããã³ã«ãå®è£
ããä»»æã®ãªããžã§ã¯ãã§ãã
value: ã·ãŒã±ã³ã¹å ã®æ¬¡ã®å€ãdone: ã€ãã¬ãŒã¿ãå®äºãããã©ããã瀺ãããŒã«å€ã
ã€ãã¬ãŒã¿ã¯ãã³ã¬ã¯ã·ã§ã³ãããŒã¿ã¹ããªãŒã ã®èŠçŽ ãæšªæããã¢ã¯ã»ã¹ããããã®æšæºåãããæ¹æ³ãæäŸããŸãã
ã€ãã¬ãŒã¿ãã«ããŒ
ã€ãã¬ãŒã¿ãã«ããŒã¯ãã€ãã¬ãŒã¿ã®æ©èœãæ¡åŒµããã¡ãœããã§ãããäžè¬çãªããŒã¿æäœã¿ã¹ã¯ãããç°¡æœã§è¡šçŸåè±ãã«å®è¡ã§ããããã«ããŸãããããã¯ã€ãã¬ãŒã¿ã䜿ã£ã颿°åã¹ã¿ã€ã«ã®ããã°ã©ãã³ã°ãå¯èœã«ããã³ãŒãã®å¯èªæ§ãšä¿å®æ§ãåäžãããŸãããããã®ãã«ããŒã¯ãå€ãã®å Žåãã€ãã¬ãŒã¿å ã®åèŠçŽ ã«é©çšãããã³ãŒã«ããã¯é¢æ°ãåŒæ°ãšããŠåããŸãã
äžè¬çãªã€ãã¬ãŒã¿ãã«ããŒã«ã¯ä»¥äžã®ãããªãã®ããããŸãïŒ
map: ã€ãã¬ãŒã¿ã®åèŠçŽ ã倿ããŸããfilter: æ¡ä»¶ã«åºã¥ããŠèŠçŽ ãéžæããŸããreduce: èŠçŽ ãåäžã®å€ã«éçŽããŸããforEach: åèŠçŽ ã«å¯ŸããŠé¢æ°ãå®è¡ããŸããsome: å°ãªããšã1ã€ã®èŠçŽ ãæ¡ä»¶ãæºããããã§ãã¯ããŸããevery: ãã¹ãŠã®èŠçŽ ãæ¡ä»¶ãæºããããã§ãã¯ããŸããtoArray: ã€ãã¬ãŒã¿ãé åã«å€æããŸãã
enumerateã€ãã¬ãŒã¿ãã«ããŒã®ç޹ä»
enumerateã€ãã¬ãŒã¿ãã«ããŒã¯ãã€ãã¬ãŒã¿å
ã®åèŠçŽ ã®ã€ã³ããã¯ã¹ãšå€ã®äž¡æ¹ãæäŸããããã«èšèšãããŠããŸããããã¯ãã·ãŒã±ã³ã¹å
ã§ã®èŠçŽ ã®äœçœ®ã«äŸåããæäœãå®è¡ããå¿
èŠãããå Žåã«ç¹ã«äŸ¿å©ã§ãã
enumerateãã«ããŒã¯ãæ¬è³ªçã«å€ã®ã€ãã¬ãŒã¿ã[index, value]ãã¢ã®ã€ãã¬ãŒã¿ã«å€æããŸãã
æ§æãšäœ¿çšæ³
enumerateã䜿çšããããã®æ§æã¯æ¬¡ã®ãšããã§ãïŒ
const enumeratedIterator = iterator.enumerate();
ããã§ãiteratorã¯åæãããã€ãã¬ãŒã¿ã§ãããenumeratedIteratorã¯[index, value]ãã¢ãçæããæ°ããã€ãã¬ãŒã¿ã§ãã
äŸïŒé åã®åæ
é åãåæããç°¡åãªäŸãèããŠã¿ãŸãããïŒ
const myArray = ['apple', 'banana', 'cherry'];
const iterator = myArray[Symbol.iterator]();
const enumeratedIterator = iterator.enumerate();
for (const [index, value] of enumeratedIterator) {
console.log(`Index: ${index}, Value: ${value}`);
}
// åºå:
// Index: 0, Value: apple
// Index: 1, Value: banana
// Index: 2, Value: cherry
ãã®äŸã§ã¯ããŸãmyArray[Symbol.iterator]()ã䜿çšããŠé
åããã€ãã¬ãŒã¿ãäœæããŸããæ¬¡ã«ãenumerateãã«ããŒãé©çšããŠåæãããã€ãã¬ãŒã¿ãååŸããŸããæåŸã«ãfor...ofã«ãŒãã䜿çšããŠ[index, value]ãã¢ãå埩åŠçããããããã³ã³ãœãŒã«ã«åºåããŸãã
enumerateã䜿çšããå©ç¹
enumerateã€ãã¬ãŒã¿ãã«ããŒã«ã¯ããã€ãã®å©ç¹ããããŸãïŒ
- å¯èªæ§ïŒ ã€ã³ããã¯ã¹ãšå€ã®äž¡æ¹ãæç€ºçã«æäŸããããšã§ãã³ãŒããããèªã¿ãããã衚çŸåè±ãã«ãªããŸãã
- ç°¡æœãïŒ ã«ãŒãå ã§ã®æåã«ããã€ã³ããã¯ã¹è¿œè·¡ã®å¿ èŠæ§ãæžãããŸãã
- å¹çæ§ïŒ ç¹ã«å€§èŠæš¡ãªããŒã¿ã»ãããè€éãªã€ãã¬ãŒã¿ãæ±ãå Žåãæåã§ã€ã³ããã¯ã¹ã远跡ãããããå¹ççã«ãªãããšããããŸãã
- 颿°åããã°ã©ãã³ã°ïŒ 宣èšçãªæ¹æ³ã§ããŒã¿å€æãæ±ãããšãã§ããããã颿°åããã°ã©ãã³ã°ã¹ã¿ã€ã«ãä¿é²ããŸãã
enumerateã®ãŠãŒã¹ã±ãŒã¹
enumerateã€ãã¬ãŒã¿ãã«ããŒã¯ãããŸããŸãªã·ããªãªã§åœ¹ç«ã¡ãŸãïŒ
1. äœçœ®ã³ã³ããã¹ããæã€ããŒã¿ã®åŠç
ã·ãŒã±ã³ã¹å
ã®èŠçŽ ã®äœçœ®ã«äŸåããæäœãå®è¡ããå¿
èŠãããå Žåãenumerateã¯ã³ãŒããç°¡çŽ åã§ããŸããããšãã°ãããŒãã«ã®ãã¹ãŠã®å¶æ°è¡ã匷調衚瀺ããããã€ã³ããã¯ã¹ã«åºã¥ããŠç°ãªã倿ãé©çšãããããããšãã§ããŸãã
äŸïŒããŒãã«ã®è¡ã亀äºã«åŒ·èª¿è¡šç€ºãã
const data = ['Row 1', 'Row 2', 'Row 3', 'Row 4', 'Row 5'];
const iterator = data[Symbol.iterator]();
const enumeratedIterator = iterator.enumerate();
let tableHTML = '';
for (const [index, row] of enumeratedIterator) {
const className = index % 2 === 0 ? 'even' : 'odd';
tableHTML += `${row} `;
}
tableHTML += '
';
// ããã§ãtableHTMLãHTMLããã¥ã¡ã³ãã«æ¿å
¥ã§ããŸã
ãã®äŸã§ã¯ãenumerateã«ãã£ãŠæäŸãããã€ã³ããã¯ã¹ã䜿çšããŠãè¡ã 'even' ãŸã㯠'odd' ã®ã¯ã©ã¹ãæã€ã¹ããã倿ããŸãã
2. ã«ã¹ã¿ã ã€ãã¬ãŒã·ã§ã³ããžãã¯ã®å®è£
enumerateã䜿çšããŠãèŠçŽ ã®ã¹ããããã€ã³ããã¯ã¹ã«åºã¥ã倿ãªã©ãã«ã¹ã¿ã ã®ã€ãã¬ãŒã·ã§ã³ããžãã¯ãå®è£
ã§ããŸãã
äŸïŒ3çªç®ããšã®èŠçŽ ãã¹ããããã
const data = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'];
const iterator = data[Symbol.iterator]();
const enumeratedIterator = iterator.enumerate();
const result = [];
for (const [index, value] of enumeratedIterator) {
if (index % 3 !== 2) {
result.push(value);
}
}
console.log(result); // åºå: ['A', 'B', 'D', 'E', 'G', 'H']
ãã®äŸã§ã¯ãã€ã³ããã¯ã¹ã3ã§å²ã£ãäœãã2ã§ãªãããšã確èªããããšã§ãã·ãŒã±ã³ã¹å ã®3çªç®ããšã®èŠçŽ ãã¹ãããããŸãã
3. éåæããŒã¿ã¹ããªãŒã ã®æäœ
enumerateã¯ãAPIãWebãœã±ããããååŸããããããªéåæããŒã¿ã¹ããªãŒã ã§ã䜿çšã§ããŸãããã®å Žåãéåžžã¯éåæã€ãã¬ãŒã¿ã䜿çšããŸãã
äŸïŒéåæããŒã¿ã¹ããªãŒã ã®åæ
async function* generateData() {
yield 'Data 1';
await new Promise(resolve => setTimeout(resolve, 500));
yield 'Data 2';
await new Promise(resolve => setTimeout(resolve, 500));
yield 'Data 3';
}
async function processData() {
const asyncIterator = generateData();
// enumerateãéåæã€ãã¬ãŒã¿ã§åäœãããšä»®å®ãããšãäœ¿çšæ³ã¯åæ§ã§ã
// ãã ããéåæenumerateããµããŒãããããªãã£ã«ããã«ããŒã©ã€ãã©ãªãå¿
èŠã«ãªãå ŽåããããŸã
// ãã®äŸã¯ãenumerateããã€ãã£ãã§éåæã€ãã¬ãŒã¿ããµããŒãããŠããå Žåã®æå³ãããäœ¿çšæ³ã瀺ããŠããŸã
const enumeratedIterator = asyncIterator.enumerate();
for await (const [index, value] of enumeratedIterator) {
console.log(`Index: ${index}, Value: ${value}`);
}
}
processData();
// æåŸ
ãããåºåïŒé©åãªéåæenumerateå®è£
ã䜿çšããå ŽåïŒïŒ
// Index: 0, Value: Data 1
// Index: 1, Value: Data 2
// Index: 2, Value: Data 3
æ³šïŒ çŸåšããã€ãã£ãã®enumerateãã«ããŒã¯éåæã€ãã¬ãŒã¿ãçŽæ¥ãµããŒãããŠããªãå¯èœæ§ããããŸããéåæçã®enumerateãæäŸããããªãã£ã«ããã«ããŒã©ã€ãã©ãªã䜿çšããå¿
èŠããããããããŸããã
4. ä»ã®ã€ãã¬ãŒã¿ãã«ããŒãšã®çµ±å
enumerateã¯ä»ã®ã€ãã¬ãŒã¿ãã«ããŒãšçµã¿åãããŠãããè€éãªããŒã¿å€æãå®è¡ã§ããŸããããšãã°ãenumerateã䜿çšããŠåèŠçŽ ã«ã€ã³ããã¯ã¹ã远å ãããã®åŸmapã䜿çšããŠã€ã³ããã¯ã¹ãšå€ã«åºã¥ããŠèŠçŽ ã倿ã§ããŸãã
äŸïŒenumerateãšmapã®çµã¿åãã
const data = ['a', 'b', 'c', 'd'];
const iterator = data[Symbol.iterator]();
const enumeratedIterator = iterator.enumerate();
const transformedData = Array.from(enumeratedIterator.map(([index, value]) => {
return `[${index}]: ${value.toUpperCase()}`;
}));
console.log(transformedData); // åºå: ['[0]: A', '[1]: B', '[2]: C', '[3]: D']
ãã®äŸã§ã¯ããŸãããŒã¿ãåæããŠåèŠçŽ ã®ã€ã³ããã¯ã¹ãååŸããŸããæ¬¡ã«ãmapã䜿çšããŠåèŠçŽ ããã€ã³ããã¯ã¹ãšå€ã®å€§æåçãå«ãæååã«å€æããŸããæåŸã«ãArray.fromã䜿çšããŠçµæã®ã€ãã¬ãŒã¿ãé
åã«å€æããŸãã
ããŸããŸãªæ¥çã§ã®å®çšäŸãšãŠãŒã¹ã±ãŒã¹
enumerateã€ãã¬ãŒã¿ãã«ããŒã¯ãããŸããŸãªæ¥çããŠãŒã¹ã±ãŒã¹ã§é©çšã§ããŸãïŒ
1. Eã³ããŒã¹
- ååãªã¹ãïŒ åç §ããããããã«çªå·ä»ãã€ã³ããã¯ã¹ã§ååãªã¹ãã衚瀺ããŸãã
- 泚æåŠçïŒ åºè·ãšé éã®ããã«æ³šæå ã®ååã®ã·ãŒã±ã³ã¹ã远跡ããŸãã
- æšèŠã·ã¹ãã ïŒ ãŠãŒã¶ãŒã®é²èЧ履æŽå ã®ã¢ã€ãã ã®äœçœ®ã«åºã¥ããŠç°ãªãæšèŠã¢ã«ãŽãªãºã ãé©çšããŸãã
2. éè
- æç³»ååæïŒ æéã«é¢é£ããŠéèããŒã¿ãåæããŸããã€ã³ããã¯ã¹ã¯æéã衚ããŸãã
- ååŒåŠçïŒ ç£æ»ãšã³ã³ãã©ã€ã¢ã³ã¹ã®ããã«ååŒã®é åºã远跡ããŸãã
- ãªã¹ã¯ç®¡çïŒ ã·ãŒã±ã³ã¹å ã®ååŒã®äœçœ®ã«åºã¥ããŠç°ãªããªã¹ã¯è©äŸ¡ã¢ãã«ãé©çšããŸãã
3. ãã«ã¹ã±ã¢
- æ£è ã¢ãã¿ãªã³ã°ïŒ æéã«é¢é£ããŠæ£è ããŒã¿ãåæããŸããã€ã³ããã¯ã¹ã¯æž¬å®æéã衚ããŸãã
- å»çç»ååŠçïŒ å»çç»åãã·ãŒã±ã³ã¹ã§åŠçããŸããã€ã³ããã¯ã¹ã¯ã¹ã©ã€ã¹çªå·ã衚ããŸãã
- å»è¬åéçºïŒ èŠå¶éµå®ã®ããã«å»è¬åéçºããã»ã¹ã®ã¹ãããã®é åºã远跡ããŸãã
4. æè²
- æçžŸè©äŸ¡ã·ã¹ãã ïŒ åã ã®è©äŸ¡ã®é åºãšå€ã«åºã¥ããŠæçžŸãèšç®ããŸãã
- ã«ãªãã¥ã©ã èšèšïŒ åŠç¿ææãæé©åããããã«æè²ã³ã³ãã³ããšæŽ»åãé åºä»ããŸãã
- åŠçã®æçžŸåæïŒ è©äŸ¡ã®ã·ãŒã±ã³ã¹ã«é¢é£ããŠåŠçã®æçžŸããŒã¿ãåæããŸãã
5. è£œé æ¥
- çç£ã©ã€ã³ã®ç£èŠïŒ 補é ããã»ã¹ã«ãããã¹ãããã®ã·ãŒã±ã³ã¹ã远跡ããŸãã
- å質管çïŒ çç£ã©ã€ã³å ã®ã¢ã€ãã ã®äœçœ®ã«åºã¥ããŠç°ãªãå質管çãã§ãã¯ãé©çšããŸãã
- åšåº«ç®¡çïŒ åãåã£ãååãšåºè·ãããååã®é åºã«åºã¥ããŠåšåº«ã¬ãã«ã管çããŸãã
ããªãã£ã«ãšãã©ãŠã¶ã®äºææ§
æ°ããJavaScriptæ©èœãšåæ§ã«ããã©ãŠã¶ã®äºææ§ã¯éèŠãªèæ ®äºé ã§ããã€ãã¬ãŒã¿ãã«ããŒã¯çŸä»£ã®ãã©ãŠã¶ã§ãŸããŸããµããŒããããŠããŸãããå€ããã©ãŠã¶ãç°å¢ãšã®äºææ§ã確ä¿ããããã«ããªãã£ã«ã䜿çšããå¿ èŠããããããããŸããã
ããªãã£ã«ãšã¯ãæ°ããæ©èœããã€ãã£ãã§ãµããŒãããŠããªãå€ãç°å¢ã§ãã®æ©èœãæäŸããããã®ã³ãŒãã®äžéšã§ãã
ã€ãã¬ãŒã¿ãã«ããŒçšã®ããªãã£ã«ã¯ãnpmãä»ã®ããã±ãŒãžãªããžããªã§èŠã€ããããšãã§ããŸããããªãã£ã«ã䜿çšããéã¯ããããžã§ã¯ãã«å«ããenumerateã€ãã¬ãŒã¿ãã«ããŒã䜿çšããåã«ããŒãããããã«ããŠãã ããã
ãã¹ããã©ã¯ãã£ã¹ãšèæ ®äºé
enumerateã€ãã¬ãŒã¿ãã«ããŒã䜿çšããéã«ã¯ã以äžã®ãã¹ããã©ã¯ãã£ã¹ãèæ
®ããŠãã ããïŒ
- 説æçãªå€æ°åã䜿çšããïŒ ã³ãŒãã®å¯èªæ§ãåäžãããããã«ãã€ã³ããã¯ã¹ãšå€ã«ã¯æç¢ºã§èª¬æçãªå€æ°åã䜿çšããŸããããšãã°ã
[i, v]ã®ä»£ããã«[itemIndex, itemValue]ã䜿çšããŸãã - å ã®ããŒã¿ã倿Žããªãããã«ããïŒ å¯èœãªéããã³ãŒã«ããã¯é¢æ°å ã§å ã®ããŒã¿ã倿Žããããšã¯é¿ããŠãã ãããããã¯äºæãã¬å¯äœçšãåŒãèµ·ãããã³ãŒãã®ãããã°ãå°é£ã«ããå¯èœæ§ããããŸãã
- ããã©ãŒãã³ã¹ãèæ
®ããïŒ ç¹ã«å€§èŠæš¡ãªããŒã¿ã»ãããæ±ãå Žåã¯ãããã©ãŒãã³ã¹ã«æ³šæããŠãã ããã
enumerateã¯å¹ççã§ãããã³ãŒã«ããã¯é¢æ°å ã§ã®è€éãªæäœã¯ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã - åå®å šæ§ã®ããã«TypeScriptã䜿çšããïŒ TypeScriptã䜿çšããŠããå Žåã¯ãåã®å®å šæ§ãåäžãããæœåšçãªãšã©ãŒãæ©æã«çºèŠããããã«ãã€ã³ããã¯ã¹ãšå€ã®å€æ°ã«å泚éã远å ããããšãæ€èšããŠãã ããã
enumerateã®ä»£æ¿ææ®µ
enumerateã¯ã€ãã¬ãŒã¿ã®ã€ã³ããã¯ã¹ãšå€ã®äž¡æ¹ã«ã¢ã¯ã»ã¹ãã䟿å©ãªæ¹æ³ãæäŸããŸããã䜿çšã§ãã代æ¿ã¢ãããŒãããããŸãïŒ
1. åŸæ¥ã®forã«ãŒã
åŸæ¥ã®forã«ãŒãã¯ãã€ã³ããã¯ã¹ãšå€ãæç€ºçã«å¶åŸ¡ã§ããŸãïŒ
const data = ['a', 'b', 'c'];
for (let i = 0; i < data.length; i++) {
console.log(`Index: ${i}, Value: ${data[i]}`);
}
ãã®ã¢ãããŒãã¯åçŽã§ãããenumerateã䜿çšãããããåé·ã§èªã¿ã«ãããªãããšããããŸãã
2. forEachã¡ãœãã
forEachã¡ãœããã¯ãå€ãšã€ã³ããã¯ã¹ã®äž¡æ¹ã«ã¢ã¯ã»ã¹ã§ããŸãïŒ
const data = ['a', 'b', 'c'];
data.forEach((value, index) => {
console.log(`Index: ${index}, Value: ${value}`);
});
ãã ããforEachã¯å¯äœçšã®ããã«èšèšãããŠãããæ°ããã€ãã¬ãŒã¿ãäœæãããããŒã¿ã倿ãããããããã«äœ¿çšããããšã¯ã§ããŸããã
3. ã«ã¹ã¿ã ã€ãã¬ãŒã¿
[index, value]ãã¢ãçæããã«ã¹ã¿ã ã€ãã¬ãŒã¿ãäœæã§ããŸãïŒ
function* enumerate(iterable) {
let index = 0;
for (const value of iterable) {
yield [index, value];
index++;
}
}
const data = ['a', 'b', 'c'];
for (const [index, value] of enumerate(data)) {
console.log(`Index: ${index}, Value: ${value}`);
}
ãã®ã¢ãããŒãã¯ã€ãã¬ãŒã·ã§ã³ããã»ã¹ã«å¯Ÿããããå€ãã®å¶åŸ¡ãæäŸããŸãããenumerateã€ãã¬ãŒã¿ãã«ããŒïŒãã€ãã£ããŸãã¯ããªãã£ã«çµç±ã§å©çšå¯èœãªå ŽåïŒã䜿çšãããããå€ãã®ã³ãŒããå¿
èŠã§ãã
çµè«
enumerateã€ãã¬ãŒã¿ãã«ããŒã¯ãå©çšå¯èœã§ããã°ãJavaScriptã®ããŒã¿åŠçèœåã«ãããéèŠãªæ¹åã衚ããŸããã€ãã¬ãŒã¿å
ã®åèŠçŽ ã®ã€ã³ããã¯ã¹ãšå€ã®äž¡æ¹ãæäŸããããšã§ãã³ãŒããç°¡çŽ åããå¯èªæ§ãé«ãããã颿°åããã°ã©ãã³ã°ã®ã¹ã¿ã€ã«ãä¿é²ããŸããé
åãæååããŸãã¯ã«ã¹ã¿ã ã€ãã¬ãŒã¿ãæ±ã£ãŠããå Žåã§ããenumerateã¯JavaScriptéçºã®æŠåšãšããŠè²ŽéãªããŒã«ãšãªãåŸãŸãã
JavaScriptãé²åãç¶ããã«ã€ããŠãenumerateã®ãããªã€ãã¬ãŒã¿ãã«ããŒã¯ãå¹ççã§è¡šçŸåè±ããªããŒã¿æäœã®ããã«ãŸããŸãéèŠã«ãªãã§ãããããããã®æ°æ©èœã掻çšããã³ãŒããšçç£æ§ãã©ã®ããã«åäžãããããšãã§ããããæ¢æ±ããŠãã ããããã©ãŠã¶ã®å®è£
ã«æ³šç®ããããé©åãªããªãã£ã«ã䜿çšããŠã仿¥ãããããžã§ã¯ãã§enumerateã®åãæŽ»çšãå§ããŸããããææ°æ
å ±ã«ã€ããŠã¯ãå
¬åŒã®ECMAScript仿§ãšãã©ãŠã¶ã®äºææ§ãã£ãŒãã確èªããããšãå¿ããªãã§ãã ããã