Bibi's DevLog ๐ค๐
[์ธํ๋ฐ] Javascript์ ๋ฌธ - ๋ฐฐ์ด๋ก ๊ตฌ๊ตฌ๋จ ๋ค์ ๊ตฌํ (์ค์ต - ํด์ค ๋ฐ ์ฐธ๊ณ ์๋ฃ, ๋ฐฐ์ด์ด๊ธฐํ) ๋ณธ๋ฌธ
[์ธํ๋ฐ] Javascript์ ๋ฌธ - ๋ฐฐ์ด๋ก ๊ตฌ๊ตฌ๋จ ๋ค์ ๊ตฌํ (์ค์ต - ํด์ค ๋ฐ ์ฐธ๊ณ ์๋ฃ, ๋ฐฐ์ด์ด๊ธฐํ)
๋น๋น bibi 2020. 10. 18. 22:26* ์ด ๊ธ์ ์ธํ๋ฐ์์ ์ ๊ณตํ๋ ํธ๋ ์ค๋์ ์ ๋ฃ ๊ฐ์ '์ฝ๊ณ ์์ฐ์ค๋ฝ๊ฒ ๋ฐฐ์๋ณด๋ Javascript ์ ๋ฌธ - ์ฝ๋์ค์ฟผ๋ ๋ง์คํฐ์ฆ ์ฝ์ค ๋ ๋ฒจ1'๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๊ฐ์ ๋ด์ฉ์ ๋ํด, ์ ๊ฐ ํ๊ธฐํ๊ณ ๊ตฌ๊ธ๋งํ ๋ด์ฉ์ด ์ ๋ฆฌ๋์ด ์์ต๋๋ค. ์ด๋ณด์ธ ์ ๊ฐ ์ดํดํ ๋๋ก ์ ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ๋ถ์ ํํ ๋ด์ฉ์ด ์์ ์ ์์์ ๊ฐ์ํด ์ฃผ์๊ธธ ๋ฐ๋๋๋ค. ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค๋ ์ธํ๋ฐ ์ธก ๋ต๋ณ์ ๋ฐ์ ์ ์ด ์์ผ๋(https://bibi6666667.tistory.com/37), ์ ์๊ถ์ ๋ฌธ์ ๊ฐ ๋๋ค๋ฉด ๋ณดํธ ๋ชจ๋(๋น๊ณต๊ฐ)๋ก ์ ํํ๊ฒ ์ต๋๋ค.
ํ์ต ๋ชฉํ
- ๋ฐฐ์ด์ ํ์ฉํด ๊ตฌ๊ตฌ๋จ์ ๊ตฌํํ๋ ๊ฒฝํ์ ํ๋ค.
- ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋ฐฐ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ค.
- 2์ค ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด ๋ณธ๋ค.
์๊ตฌ์ฌํญ
- ๊ตฌ๊ตฌ๋จ ๊ฒฐ๊ณผ์ ๋ฐฐ์ด์ ์ ์ฅํ ํ ๋ฐฐ์ด์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
๊ฒฐ๊ณผ๋ฌผ
- ๊ตฌ๊ตฌ๋จ์ ์ฝ์์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ
- ๊ตฌ๊ตฌ๋จ์ html์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ
- github ์ ์ฅ์
ํํธ
- 2๋จ์ ๊ตฌํํ๊ธฐ ์ํด ๋ฐฐ์ด์ ์์ฑํ๋ค.
- for๋ฌธ์ ๋๋ฉด์ ๊ตฌ๊ตฌ๋จ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด์ ์ ์ฅํ๋ค.
- ๋ฐฐ์ด์ ํฌ๊ธฐ ๋งํผ for ๋ฌธ์ ํตํด ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
var results = []; var length = 9; for(var i=1; i <= length; i++) { // ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด์ ์ ์ฅ } for(var i=1; i <= length; i++) { // ๋ฐฐ์ด์ ๋ด์ฉ์ ์ถ๋ ฅ }
var results = [];
var length = 9;
for(var i=1; i <= length; i++) {
// ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด์ ์ ์ฅ
}
for(var i=1; i <= length; i++) {
// ๋ฐฐ์ด์ ๋ด์ฉ์ ์ถ๋ ฅ
}
ํ์ต ์ฐธ๊ณ ์๋ฃ
๋ฐฐ์ด
์ํ์ฝ๋ฉ์ ๊ด๋ จ์๋ฃ๋ฅผ ์ฐธ๊ณ ํด์ ํ์ตํ๋ค.
https://opentutorials.org/course/3085/18825
์ถ๊ฐ ์๊ตฌ์ฌํญ
- 2๋จ์์ 9๋จ๊น์ง ์ ์ฒด๋ฅผ ์ถ๋ ฅํ๋๋ฐ ๋ง์ ์ค๋ณต ์ฝ๋๊ฐ ๋ฐ์ํ๋ค.
- ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด 2๋จ๊ณผ 9๋จ์ ๋ํ ์ค๋ณต์ ์ ๊ฑฐํ๋ค.
ํํธ
- ๋ฐ๋ณต๋ฌธ ์์ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ฅผ 2์ค ๋ฐ๋ณต๋ฌธ์ด๋ผ๊ณ ํ๋ค.
๋ด๊ฐ ์ง ์ฝ๋
- ๊ตฌ๊ตฌ๋จ์ด ๋์ํ๊ณ ํ๋ฉด์ ๊ฒฐ๊ณผ๊ฐ ์ ์ถ๋ ฅ.
- ์ค๋ฅ : 2~9 ์ฌ์ด ์์ฐ์๋ง ๊ณจ๋ผ์ ์
๋ ฅ๋ฐ์ ์๊ฐ ์์.
2๋ฏธ๋ง 9์ด์์ ์ซ์๊ฐ ๋ค์ด์์ ๊ฒฝ์ฐ ๋ค์ ์
๋ ฅํ๋ผ๋ ์ฐฝ์ด ๋์์ง์ง๋ง, ๊ฒฐ๊ณผ์์ ์ค๋ฅ๊ฐ ๋จ.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>๊ตฌ๊ตฌ๋จ : n๋จ์ ์ถ๋ ฅํ๊ธฐ</h2>
<div id="results"></div>
<script>
var gugudan = {};
gugudan.dan = [];
gugudan.results = [];
gugudan.length = 9;
gugudan.run = function () {
var n = prompt("๋ช ๋จ์ ์ถ๋ ฅํ ๊น์? (2์ 9 ์ฌ์ด ์์ฐ์ ์
๋ ฅ)");
if (n < 2 || n > 10) {
this.dan.length = 0;
prompt("2์ 9 ์ฌ์ด ์์ฐ์๋ฅผ ๋ค์ ์
๋ ฅํด ์ฃผ์ธ์.")
} else {
this.dan.length = 0;
this.dan.push(n);
for (var i = 1; i <= this.length; i++) {
var result = n * i;
this.results.push(result);
}
}
}
gugudan.show = function () {
var ret = "";
ret += "<h2>" + this.dan + "์ถ๋ ฅ</h2>\n";
for (var i = 1; i <= this.length; i++) {
var result = this.results[i - 1];
ret += this.dan + " ๊ณฑํ๊ธฐ " + i + " ๋ " + result + "<br>\n";
}
return ret;
}
gugudan.run();
document.getElementById("results").innerHTML = gugudan.show();
</script>
</body>
</html>
๊ตฌ๊ธ๋ง) ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด ์ด๊ธฐํ
jamesdreaming.tistory.com/44
-> ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ธ ๋ฐฐ์ด์ด๋ฆ.length=0;์ผ๋ก ํ์ฉ.
ํด์ค (์ฝ๋ฉ-๋ฐฐ์ด๋ก ๊ตฌ๊ตฌ๋จ ๊ตฌํ)
-> ๋ฐฐ์ด'๋ง' ์ฌ์ฉํด์ ๊ตฌํํด์ผ ํ๋ ๊ฒ์ด์์!! ใ
ใ
ใ
ํจ์, ๊ฐ์ฒด ์ฌ์ฉํ๋ ๊ฒ์ ๋ค์ ๋ ๋์ด.
-----------------
-๋ฐฐ์ด๋ ๊ฐ์ฒด์ด๋ค(object)
-๋ฐฐ์ด์ ๋๊ดํธ[], ๊ฐ์ฒด๋ ์ค๊ดํธ{} ๋ก ํ์.
arr = []
๋ฐฐ์ด.
arr[0] = 10
๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ๊ฐ์ 10์ผ๋ก ํจ.
arr.length = 1
๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ์๋ ค์ค. ๋ฐฐ์ด์ ๊ธธ์ด = ๋ฐฐ์ด์ ์์์ ๊ฐฏ์
-----------------
์ด ์ฌ์ค๋ค์ ๋ณต์ตํ๊ณ ๊ตฌ๊ตฌ๋จ์ ๋ง๋ค์ด ๋ณด์.
<์ ์ฒด ์ ๋ต์ฝ๋>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>๊ตฌ๊ตฌ๋จ ์ ์ฒด ์ถ๋ ฅ</h1>
<script>
var result = []; // ๋น์ด ์๋ ๋ฐฐ์ด
for (var n = 2; n <= 9; n++) {
// calculate
for (var i = 1; i <= 9; i++) {
result[i] = n * 1;
}
// print
document.write("<h2>" + n + "๋จ</h2>")
for (var i = 1; i <= 9; i++) {
var str = "";
str += n;
str += " ๊ณฑํ๊ธฐ ";
str += i;
str += " ๋ "
str += result[i];
str += "<br>";
document.write(str)
}
}
</script>
</body>
</html>
- ์์ ๊ฐ์ ๋ฐ๋ณต๋ฌธ์์ var i = 1; ๋ก ์์ํ๋ฉด,
๋ฐฐ์ด์ ํน์ฑ์ 0๋ฒ์งธ๋ถํฐ ์์ํ๋๋ฐ 0์ ํ์ฉํ์ง ๋ชปํ๊ฒ ๋๋ค.
๋ฐ๋ผ์ ๊ฐ๋ฅํ๋ฉด var i = 0;๋ถํฐ ์์ํ๋ ์ฝ๋๋ฅผ ์ง๋ ๊ฒ ์ข๋ค.
-> ์ฝ๋ ์ง๋ ์์.
์๋ฌด ์ซ์๋ ํ ๋จ ๊ตฌ๊ตฌ๋จ์ ๋จผ์ ๊ตฌํํ๊ณ , ๊ทธ๊ฒ์ 2~9๊น์ง ๋์ผํ๊ฒ ์ ์ฉํด ๊ตฌ๊ตฌ๋จ์ ์์ฑํ๋ค.
var result = []; // ๋น์ด ์๋ ๋ฐฐ์ด
var n = 3 // 3๋จ ๋จผ์ ๊ตฌํ
// calculate
for (var i = 1; i <= 9; i++) {
result[i] = n * 1;
}
// print
document.write("<h2>" + n + "๋จ</h2>")
for (var i = 1; i <= 9; i++) {
var str = "";
str += n;
str += " ๊ณฑํ๊ธฐ ";
str += i;
str += " ๋ "
str += result[i];
str += "<br>";
document.write(str)
}
-> 3๋จ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ๋จผ์ ๊ตฌํํ๋ค.
-> ์ ์ถ๋ ฅ๋๋ฉด, ์์ ์ฝ๋๋ฅผ 2๋จ~9๋จ์๋ ์ ์ฉํ๋ค. (= ๋ฐ๋ณต๋ฌธ ์ฌ์ฉ)
var result = []; // ๋น์ด ์๋ ๋ฐฐ์ด
for (var n = 2; n <= 9; n++) {
// calculate
for (var i = 1; i <= 9; i++) {
result[i] = n * 1;
}
// print
document.write("<h2>" + n + "๋จ</h2>")
for (var i = 1; i <= 9; i++) {
var str = "";
str += n;
str += " ๊ณฑํ๊ธฐ ";
str += i;
str += " ๋ "
str += result[i];
str += "<br>";
document.write(str)
}
}
-> ์ฒ์ ๊ฐ๋ฐํ๋ ๋ ๋ฐ๋ณต๋ฌธ(calculate, print) ์ ์ฒด๋ฅผ 2์์ 9๊น์ง ๋ฐ๋ณตํ๋ค.
-> ๊ตฌ๊ตฌ๋จ ์์ฑ!