์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- ์ปจํธ๋กค๋ฌ
- optionํ๊ทธ
- ์๋ฐ์คํฌ๋ฆฝํธ
- Ajax
- ํ๋ก๊ทธ๋๋จธ์ค
- JavaScript
- ๋ฐฑํฑ
- ๋์ ํ ์ด๋ธ
- post๋ฐฉ์
- ๋์ปค
- DATE_FORMAT
- ๋ฆฌ๋ ์ค
- MySQL
- select
- ๋ฐฐ์ด
- Update
- JSP
- ๋ช ๋ น์ด
- ํ ์ด๋ธ
- SQL
- ํจ์
- oracle
- ์ธ๋ผ์ธ๋ทฐ
- JS
- order by
- ๋์
- like
- ๋ณ์
- Spring
- ์ฝํ
- Today
- Total
bom's happy life
[JS] for๋ฌธ๊ณผ forEach๋ฌธ์ ์ฐจ์ด? + "-1๋ก ์ด๊ธฐํ ํ๋ ์ด์ " ๋ณธ๋ฌธ
[JS] for๋ฌธ๊ณผ forEach๋ฌธ์ ์ฐจ์ด? + "-1๋ก ์ด๊ธฐํ ํ๋ ์ด์ "
bompeach 2023. 6. 1. 11:18'forEach'์ 'for' ๋ฃจํ๋ ๋ฐฐ์ด์ ์์๋ฅผ ๋ฐ๋ณตํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฐ๋ณต๋ฌธ ์ด๋ค.
๊ทธ๋ฌ๋ ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์๋ ๋ช ๊ฐ์ง ์ฐจ์ด์ ์ด ์๋ค.
1. ๊ตฌ๋ฌธ : 'forEach'๋ ๋ฉ์๋ ํํ๋ก ๋ฐฐ์ด์ ๋ด์ฅ๋์ด ์์ผ๋ฉฐ, ์ฝ๋ฐฑ ํจ์๋ฅผ ์ธ์๋ก ๋ฐ๋๋ค. 'for' ๋ฃจํ๋ ์ผ๋ฐ์ ์ธ ๋ฐ๋ณต๋ฌธ ๊ตฌ๋ฌธ์ผ๋ก, ๋ฐ๋ณต ์กฐ๊ฑด๊ณผ ๋ฐ๋ณต ๋ณ์ ๋ฑ์ ์ง์ ์ ์ดํ๋ค.
2. ์ธ๋ฑ์ค ๋ฐ ์์ : 'forEach'์ ์ฝ๋ฐฑ ํจ์๋ ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ํ ๋ฒ์ฉ ํธ์ถ๋๋ค. ์ฝ๋ฐฑ ํจ์๋ ํ์ฌ ์์, ํ์ฌ ์ธ๋ฑ์ค, ์๋ณธ ๋ฐฐ์ด์ ์ธ์๋ก ๋ฐ๋๋ค. 'for' ๋ฃจํ๋ ๋ฐ๋ณต ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด ์์์ ์ ๊ทผํ๋ค.
3. ์ค๋จ ๊ฐ๋ฅ ์ฌ๋ถ : 'forEach'๋ ๋ฐ๋ณต ๋์ค์๋ ์ค๋จํ ์ ์๋ค. ์ฝ๋ฐฑ ํจ์๊ฐ ๋ฐฐ์ด์ ๋ชจ๋ ์์์ ๋ํด ์คํ๋๋ค. 'for' ๋ฃจํ์์๋ 'break' ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐ๋ณต์ ์ค๋จํ ์ ์๋ค.
4. ์ฑ๋ฅ : ์ฑ๋ฅ ์ธก๋ฉด์์ 'for' ๋ฃจํ๊ฐ ๋ ๋น ๋ฅด๋ค. 'forEach' ๋ฉ์๋๋ ๋ด๋ถ์ ์ผ๋ก ๋ฐ๋ณต ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ, ๋ฐ๋ณต ๋์ค์ ํจ์ ํธ์ถ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ์ ์ค๋ฒํค๋๊ฐ ์์ ์ ์๋ค.
๋ฐ๋ผ์, ๋ฐฐ์ด์ ์ํํ๋ฉด์ ๊ฐ๋จํ ์์ ์ ์ํํ ๋๋ 'forEach' ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํธ๋ฆฌํ๊ณ ๊ฐ๋ ์ฑ์ด ์ข๋ค. ๋ฐ๋ฉด์ ์ฑ๋ฅ์ด ์ค์ํ ๊ฒฝ์ฐ๋ ๋ฐ๋ณต ๋์ค์ ์ค๋จ์ด ํ์ํ ๊ฒฝ์ฐ์๋ 'for' ๋ฃจํ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ ํฉํ๋ค.
์์์ ๋งํ๋ ๋ฐ๋ณต ๋ณ์๋?
๋ฐ๋ณต ๋ณ์๋ ๋ฐ๋ณต๋ฌธ์์ ์ฌ์ฉ๋๋ ๋ณ์๋ก, ๋ฐ๋ณต ๊ณผ์ ์์ ํ์ฌ ๋ฐ๋ณต์ ์ํ๋ฅผ ๋ํ๋ด๋ ๊ฐ์ ์ ์ฅํ๋ค. ์ด ๋ณ์๋ ๋ฐ๋ณต๋ฌธ ๋ด์์ ์กฐ๊ฑด ๊ฒ์ฌ๋ ๋ฐฐ์ด ์ ๊ทผ ๋ฑ์ ์ฌ์ฉ๋๋ค. 'for' ๋ฃจํ์์๋ ์ผ๋ฐ์ ์ผ๋ก 'i'๋ผ๋ ๋ณ์๊ฐ ๋ฐ๋ณต ๋ณ์๋ก ์ฌ์ฉ๋๋ ๊ด๋ก๊ฐ ์๋ค.
์๋ฅผ ๋ค์ด, ๋ค์์ 'for'๋ฃจํ์์ 'i'๋ฅผ ๋ฐ๋ณต ๋ณ์๋ก ์ฌ์ฉํ๋ ์์์ด๋ค.
for (var i = 0; i < 5; i++) {
console.log(i);
}
์์ ์์์์ 'i'๋ 0์์ ์์ํ์ฌ 5๋ณด๋ค ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ฉฐ, ๊ฐ ๋ฐ๋ณต๋ง๋ค 'i'์ ๊ฐ์ ์ถ๋ ฅํ๋ค. ๋ฐ๋ผ์ ์ฝ์์๋ 0๋ถํฐ 4๊น์ง์ ์ซ์๊ฐ ์ถ๋ ฅ๋๋ค.
๋ฐ๋ณต ๋ณ์๋ ๋ฐ๋ณต๋ฌธ์ ์กฐ๊ฑด ๊ฒ์ฌ์ ์ฌ์ฉ๋ ์๋ ์๋ค. ์๋ฅผ ๋ค์ด, ๋ฐฐ์ด์ ์์๋ฅผ ์ํํ๋ฉด์ ํน์ ๊ฐ์ ์ฐพ์ ๋ ๋ค์๊ณผ ๊ฐ์ด 'for' ๋ฃจํ์ ๋ฐ๋ณต ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
var arr = [1, 2, 3, 4, 5];
var target = 3;
var index = -1;
for (var i = 0; i < arr.length; i++) {
if (arr[i] === target) {
index = i;
break;
}
}
console.log(index);
์์ ์์์์ arr ๋ฐฐ์ด์ ์ํํ๋ฉด์ target ๊ฐ๊ณผ ์ผ์นํ๋ ์์๋ฅผ ์ฐพ๋๋ค. ๋ฐ๋ณต ๋ณ์ i๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์ธ๋ฑ์ค์ ์ ๊ทผํ๊ณ , ์ผ์นํ๋ ๊ฒฝ์ฐ ํด๋น ์ธ๋ฑ์ค๋ฅผ index ๋ณ์์ ์ ์ฅํ๋ค. ์ดํ break ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐ๋ณต์ ์ค๋จํ๋ค. ์ฝ์์๋ ์ผ์นํ๋ ์์์ ์ธ๋ฑ์ค์ธ 2๊ฐ ์ถ๋ ฅ๋๋ค.
์ด์ฒ๋ผ ๋ฐ๋ณต ๋ณ์๋ ๋ฐ๋ณต ๊ณผ์ ์์ ํ์ฌ ์ํ๋ฅผ ์ถ์ ํ๊ณ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
+ ์ถ๊ฐ์ ์ผ๋ก ๋ฐ๋ก ์์ ์ฝ๋์์ var index = -1; ์ด๋ผ๊ณ ์ด๊ธฐํํ๋ ์ด์ ๊ฐ ๊ถ๊ธํด์ ์ฐพ์๋ณด์๋ค.
๋ฐฐ์ด์์ ํน์ ๊ฐ์ ์ฐพ์ ๋ ํด๋น ๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ๋ ๋ณ์๋ฅผ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ ์ค์ ํ๋์ด๋ค.
์์ ์์์์ 'index' ๋ณ์๋ฅผ ๋ฐฐ์ด 'arr' ์์ 'target' ๊ฐ๊ณผ ์ผ์นํ๋ ์์์ ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ค. ์ด๊ธฐ๊ฐ์ -1๋ก ์ค์ ํ๋ ์ด์ ๋, ๋ง์ฝ ์ผ์นํ๋ ์์๋ฅผ ์ฐพ์ง ๋ชปํ๋ฉด 'index' ๊ฐ์ด -1๋ก ์ ์ง๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ ์ผ์นํ๋ ์์๊ฐ ์์์ ๋ํ๋ด๋ ํ์์ด๋ค.
๋ง์ฝ 'index' ๋ณ์๋ฅผ -1๋ก ์ด๊ธฐํํ์ง ์๊ณ , ๋ฐ๋ณต๋ฌธ ์ด์ ์ 'var index;' ์ ๊ฐ์ด ๋ณ์๋ฅผ ์ ์ธํ๋ฉด, 'index' ๋ ์๋์ผ๋ก 'undefined'๋ก ์ด๊ธฐํ๋๋ค. ์ดํ ์ผ์นํ๋ ์์๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ 'index' ๊ฐ์ 'undefined' ์ํ๋ก ์ ์ง๋๋ค. ๋ฐ๋ผ์ ์ด๊ธฐ๊ฐ์ ๋ช ์์ ์ผ๋ก -1๋ก ์ค์ ํจ์ผ๋ก์จ, 'index' ๊ฐ ์ผ์นํ๋ ์์๋ฅผ ์ฐพ์ง ๋ชปํ์์ ๋ํ๋ผ ์ ์๋ค.