js

for in λ¬Έ μ‚¬μš© μ‹œ μ£Όμ˜ν•  점

natrue 2023. 12. 8. 14:58
728x90

for in : 객체의 ν”„λ‘œνΌν‹°λͺ…을 μ—΄κ±°ν•˜λŠ” 반볡문

 

 

1. ν”„λ‘œνΌν‹°λ₯Ό μ—΄κ±°ν•˜λŠ” μˆœμ„œ

μœ„μ˜ 예제 μ½”λ“œ 쀑 객체 λ¦¬ν„°λŸ΄ 식에 μ“΄ 것에 λŒ€ν•œ 결과값이 μˆœμ„œλŒ€λ‘œ λ‚˜μ˜€κΈ°λŠ” ν•˜μ˜€μ§€λ§Œ 객체 λ¦¬ν„°λŸ΄μ— μ“΄ μˆœμ„œλŒ€λ‘œ μ—΄κ±°λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ‹€μ‹œλ§ν•΄μ„œ μˆœμ„œκ°€ 보μž₯λ˜λŠ” 것이 μ•„λ‹™λ‹ˆλ‹€. μ›λž˜ ν”„λ‘œνΌν‹° κ°„μ—λŠ” μˆœμ„œκ°€ μ—†λŠ” κ²ƒμœΌλ‘œ μˆœμ„œλ₯Ό μ˜μ‹ν•˜λŠ” 것 μžμ²΄κ°€ 잘λͺ»λœ κ²ƒμž…λ‹ˆλ‹€.

ν•œνŽΈ, λ°°μ—΄μ˜ κ²½μš°λŠ” μˆœμ„œλ₯Ό μ˜μ‹ν•˜λŠ” λ°μ΄ν„°νƒ€μž…μž…λ‹ˆλ‹€. 

μœ„μ˜ λ°°μ—΄ μ½”λ“œμ—μ„œλ„ λ§ˆμ°¬κ°€μ§€λ‘œ κΈ°λŒ€ν•œ μˆœμ„œλ₯Ό λ³΄μ΄κ³ λŠ” μžˆμ§€λ§Œ for in 문은 μˆœμ„œλ₯Ό 보μž₯ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 이 같은 λ™μž‘ 방식에 μ§€λ‚˜μΉ˜κ²Œ μ˜μ‘΄ν•΄μ„œλŠ” μ•ˆλ©λ‹ˆλ‹€.

 

 

2. μ—΄κ±°ν•  수 μ—†λŠ” ν”„λ‘œνΌν‹°μ˜ 쑴재

λ‘λ²ˆμ§Έλ‘œ μ£Όμ˜ν•  점은 for in 문에 λ‚˜μ—΄ν•  수 μ—†λŠ” ν”„λ‘œνΌν‹°μ˜ κ²½μš°μž…λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, λ°°μ—΄ κ°μ²΄μ—λŠ” length ν”„λ‘œνΌν‹°κ°€ μ‘΄μž¬ν•˜μ§€λ§Œ μœ„μ˜ μ½”λ“œμ—μ„œμ™€ 같이 for in λ¬Έμ—μ„œλŠ” μ—΄κ±°ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

length ν”„λ‘œνΌν‹°λŠ” μ—΄κ±°ν•  수 μ—†λŠ” μ†μ„±μ˜ ν”„λ‘œνΌν‹°μ΄κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

 

 

3. ν”„λ‘œν† νƒ€μž… μƒμ†ν•œ ν”„λ‘œνΌν‹°

μ„Έλ²ˆμ§Έλ‘œ μ£Όμ˜ν•  점은 for in 문은 ν”„λ‘œν† νƒ€μž…μ—μ„œ μƒμ†ν•œ ν”„λ‘œνΌν‹°λ„ λ‚˜μ—΄ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

 

 

 

- 개발 μ‹œ 주의 ν•  점 - 

 

 

for in 으둜 λ°˜λ³΅λ¬Έμ„ 돌릴 경우 filesμ—λŠ” [0] ν•˜λ‚˜μ˜ λ°μ΄ν„°λ§Œ μ‘΄μž¬ν•˜λŠ”λ° 비정상적인 데이터가 μŒ“μ΄λŠ”κ±Έ 확인 

원인 - for in을 μ“°λ©΄ μƒμ†ν•œ ν”„λ‘œνΌν‹°λ„ λ‚˜μ—΄ν•΄λ²„λ €μ„œ μ—†λŠ” 정보도 appendμ‹œν‚€λŠ”κ²Œ 문제. 

for (var i in files) { 
 $('#uploaderFiles').append('<div id="' + files[i].id + '">- ' + files[i].name + ' (' + plupload.formatSize(files[i].size) + ') <a href="#" class="btn btn-xs btn-danger btnRemoveUploadFile">×</a><span class="percent label label-info pull-right hidden"></span><progress value="0" max="100"></progress></div>');
}

 

λ˜ν•œ for in으둜 files lengthλ₯Ό μ—΄κ±°ν•  수 μ—†μŒ 

for (var i = 0; i < files.length; i ++) {
  $('#uploaderFiles').append('<div id="' + files[i].id + '">- ' + files[i].name + ' (' + plupload.formatSize(files[i].size) + ') <a href="#" class="btn btn-xs btn-danger btnRemoveUploadFile">×</a><span class="percent label label-info pull-right hidden"></span><progress value="0" max="100"></progress></div>');
}

 

 

 

 

 

좜처: https://webclub.tistory.com/243