๐ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด ๋ช ์ฒ ๊ฐ์ ๋ณ์๋ฅผ ์์ฑํ์ง ์๊ณ , ํ๋์ ๋ณ์์ ๋ชจ๋ ๋ฐ์ดํฐ
๋ฅผ ๊ฐ๊ณ ์์ ์ ์๋ค.
๐ ๋ฐฐ์ด์ ๋๊ดํธ([])๋ก ๊ฐ์ธ์ ธ ์๋ค. ๋น๋ฐฐ์ด ๋๋ ์(element)๊ฐ ์๋ ๋ฐฐ์ด์ด ์๋ค.
let city = "์์ธ" let city = "๋์ " let city = "๋๊ตฌ" let city = "๋ถ์ฐ" let city = "๊ด์ฃผ" . . . let KOSPI = 2062.82 let KOSPI = 2053.2 let KOSPI = 2045.92 let KOSPI = 2058.82 let KOSPI = 2053.12 // ์ด๋ ๊ฒ ์๋ง์ ๋ณ์๋ฅผ ๋ง๋ค์ด ๋ด๋ ๊ฒ์ด ๋นํจ์จ์ ์ด๋ฏ๋ก // ๋ณ์ 1๊ฐ(cities)๋ฅผ ์์ฑํ์ฌ ๋ฐฐ์ด(array)๋ก ๊ฐ์ ํ ๋ฒ์ ๋ด์์ค ์ ์๋ค. let cities = ["์์ธ", "๋์ ", "๋๊ตฌ", "๋ถ์ฐ", "๊ด์ฃผ", "์ ์ฃผ๋"]; let KOSPI = [2062.82, 2053.2, 2045.92, 2058.82, 2053.12, 2055.7];
โฉ ๋ฐฐ์ด์ ๊ฐ, ํ๋ ํ๋๋ฅผ
Element(์์)
๋ผ๊ณ ๋ถ๋ฅธ๋ค.
โฉ ์์์ ์์ ์ฌ์ด์๋์ผํ๋ก ๊ตฌ๋ถ
ํ๋ค.
โฉ ์์ ์๋ฆฌ์๋String
,Number
,Array
๋ชจ๋ ๊ฐ๋ฅvar anything = ["๋์ ", 1987, ["ํ๋", "๋", 3]]; console.log(anything[0]); // "๋์ " console.log(anything[1]); // 1987 console.log(anything[2]); // ["ํ๋", "๋", 3] // Stringํ์ธ "๋์ "์ index๊ฐ 0 // Numberํ์ธ 1987์ index๊ฐ 1 // Arrayํ์ธ ["ํ๋", "๋", 3]์ index๊ฐ 2
๐ ๋ฐฐ์ด์ ์์(Index
)
index๋ 1์ด ์๋๋ผ 0๋ถํฐ ์์ํ๋ค.
/* `getElement` ํจ์์์ arr ๋ณ์๋ฅผ ์ ์ธํ์ต๋๋ค. arr ๋ณ์๋ ๋ฐฐ์ด์ ํ ๋นํ๊ณ ์, ๋ฐฐ์ด์๋ ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ ์์๊ฐ ๋ค์ด์๋ค์! ๋ฐฐ์ด์ด ๋ด๊ธด arr ๋ณ์์ ์ ๊ทผํ์ฌ `getElement` ํจ์๊ฐ `"array"` ๋ผ๋ ๋ฌธ์์ด์ return ํ ์ ์๋๋ก ํด์ฃผ์ธ์. */ function getElement() { //๋นํจ์ let arr = [3, [4, ["array", 9], 2+3], [0]]; return arr[1][1][0]; // 'array'๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ } console.log(getElement()); /* `addFirstAndLast` ํจ์ ์์ ์์ฑํด์ฃผ์ธ์. `addFirstAndLast` ํจ์์ ์ฃผ์ด์ง ์ธ์ `myArray`๋ ์ซ์ ๊ฐ์ผ๋ก๋ง ์ด๋ฃจ์ด์ง array ์ ๋๋ค. `addFirstAndLast` ํจ์์ ์ฃผ์ด์ง ์ธ์ `myArray` ์ ์ฒซ๋ฒ์งธ element์ ๋ง์ง๋ง element์ ๊ฐ์ ๋ํ ๊ฐ์ ๋ฆฌํดํด์ฃผ์ธ์. ๋ง์ผ `myArray`์ ํ ๊ฐ์ ์์๋ง ์๋ค๋ฉด ํด๋น ์์์ ๊ฐ์ ๋ฆฌํดํด ์ฃผ์๊ณ ์์๊ฐ ์๋ ๋น์ด์๋ array๋ผ๋ฉด 0์ ๋ฆฌํดํด์ฃผ์ธ์. */ let addFirstAndLast = (myArray) => { if (myArray.length > 1) { // elements ๊ฐฏ์๋ ์ต์ 2๊ฐ ์ด์(์ฒซ๋ฒ์งธ element์ ๋ง์ง๋ง element์ ๊ฐ์ ๋ํ ๊ฐ์ ๋ฆฌํดํด์ผ ํ๊ธฐ ๋๋ฌธ์) return myArray[0] + myArray[myArray.length-1]; } //myArray์ 0๋ฒ์งธ, myArray์ ๋ง์ง๋ง๋ฒ์งธ(length-1) ๊ธฐ์ตํ๊ธฐ!! if (myArray.length == 1) { // ๋ฐฐ์ด์ ์ ์ฒด ๊ธธ์ด๊ฐ 1 ์ด๋ผ๋ฉด myArray๊ทธ๋๋ก ์ถ๋ ฅ return myArray; } if (myArray.length == 0) { // ๋ฐฐ์ด ์ ์ฒด์ ๊ฐ์ด ์๋ค๋ฉด return 0; } } addFirstAndLast([1,2,4]); // 5 addFirstAndLast([3]); // 3 addFirstAndLast([]) // 0
๐ ์ฝ๋๋ฅผ ์ํ๋ ๋งํผ ๋ฐ๋ณต์ํฌ ์ ์๋ ๋ฐ๋ณต๋ฌธ
์ด๋ค.
let count = 1; for (let i = 0; i <= 5; i++) { count = count + 1; } // i๋ 1์ฉ ์ฆ๊ฐํ๋ฉด์ 0, 1, 2, 3, 4, 5๊น์ง ์ฆ๊ฐ, for๋ฌธ ๋ด๋ถ์ ์ฝ๋ ์ด 6๋ฒ ์คํ // i ๊ฐ 5๊ฐ ๋ ๋๊น์ง for ๋ฌธ์ {} ์์ ์คํํ๋ค๊ฐ, 6์ด ๋๋ฉด i <= 5๋ผ๋ ์์ false ๊ฐ ๋จ. (6 > 5) for (var i = 2; i < 10; i = i + 2) // i ๋ 2๋ถํฐ ์์ํ์ฌ 10๋ณด๋ค ์์๋๊น์ง 2์ฉ ์ฆ๊ฐ์ํค๋ฉด์ for๋ฌธ์ ๋๋ฆฐ๋ค. // i๊ฐ 2,4,6,8 ์ผ๋ก 2์ฉ ์ฆ๊ฐํ๋ฉฐ for๋ฌธ์ ์ด 4๋ฒ ๋ฐ๋ณต. // i ๋ for๋ฌธ์ ๋๋ฉฐ ๊ณ์ ๋ณํ๋ ๊ฐ์ด๋ค. // for๋ฌธ ์กฐ๊ฑด์ ๋ง์ง๋ง์ `i = i + 2`๋ ์๋์ i ์ 2์ฉ ๋ํ๋ค๋ ๋ป์ด๋ฏ๋ก for ๋ฌธ์ด ํ ๋ฒ ๋ ๋๋ง๋ค i ๋ 2์ฉ ์ฆ๊ฐํ๋ ๊ฒ. for (var i = 10; i > 7; i--) // i๋ 10๋ถํฐ ์์ํ์ฌ 7๋ณด๋ค ํด๋๊น์ง (7๋ณด๋ค ํด ๋์๋ง) - 1์ฉ ๊ฐ์ํ๋ฉด์ for๋ฌธ ์์ ์ฝ๋๋ฅผ ์คํ์ํจ๋ค. // i๊ฐ 10, 9, 8 ์ผ๋ก 1์ฉ ๊ฐ์ํ๋ฉฐ for๋ฌธ์ ์ด 3๋ฒ ๋ฐ๋ณตํ๋ค.
๐ ๋ฐ๋ณต๋ฌธ ๋ด๋ถ์ ์กฐ๊ฑด๋ฌธ ์คํ ๋ฐฉ๋ฒ
const home = "๋์ "; let cities = ["์์ธ", "๋์ ", "๋๊ตฌ", "๋ถ์ฐ", "๊ด์ฃผ", "์ ์ฃผ๋"]; // home์ด๋ผ๋ ๋ณ์ ์ ์ธ("๋์ " ์์ ํ ๋น), cities๋ผ๋ ๋ณ์ ์ ์ธ(๋ฐฐ์ด๊ฐ ํ ๋น) for (let i = 0; i <= cities.length; i++) { if (cities[i] === home) { //cities์ ๋ฐฐ์ด๊ฐ์ด ๋ณ์ home์ ๊ฐ๊ณผ ๊ฐ์ ๋, console.log("๋ค, " + cities[i] + " ์ฌ์๋๊ตฐ์"); } // '๋ค, ๋์ ์ฌ์๋๊ตฐ์' ์ถ๋ ฅ (cities[i] = home = '๋์ ') }
โ for๋ฌธ์ ์์ฑํ ๋, ๋ฐฐ์ด์ ์ด ๊ธธ์ด๊ฐ ์ผ๋ง๋ ๋๋์ง ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ๋ ์๋ค. ์ด๋ด ๊ฒฝ์ฐ์๋ for๋ฌธ์์ i๊ฐ ์ด๋๊น์ง ๋์์ผ ํ๋์ง ์ ํํด์ฃผ๊ธฐ ์ด๋ ค์์ง๋ค. ๋ฐ๋ผ์ ๋ฐฐ์ด์ ์ด ๊ธธ์ด๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค.
console.log(๋ฐฐ์ด์ด๋ฆ.length);
let cities = ["์์ธ", "๋์ ", "๋๊ตฌ", "๋์ ", "๊ด์ฃผ", "๋์ "]; console.log(cities.length); // 6 // cities ๋ฐฐ์ด์ ์์๋ ์ด 6๊ฐ ์ด๋ฏ๋ก 6 ์ด๋ผ๋ ์ซ์๊ฐ ๋ฐํ.
โ ๋ฐฐ์ด์ ์ด ๊ธธ์ด๋ฅผ ์ซ์๊ฐ ์๋ ๋ฐฐ์ด์ด๋ฆ.length
์ ์ฌ์ฉํ์ฌ for๋ฌธ์ ์ ์ฉํด์ฃผ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
โจ ๊ฐ์ด๋ฐ ๋น๊ต์ฐ์ฐ์๋ฅผ ์ฃผ์!!!
<=
๊ฐ ์๋ <
๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค. ๊ผญ ์ ์ฒด ๊ธธ์ด(.length) ๋ฏธ๋ง
์ด์ด์ผ ํ๋ค.
for (var i = 0; i < cities.length; i++) { if (cities[i] === home) { alert("์, ์ฌ๊ธฐ ์ฌ์๋๊ตฐ์"); } }
/* findSmallestElement ์ arr ์ธ์๋ ์ซ์ ๊ฐ์ผ๋ก๋ง ์ด๋ฃจ์ด์ง array ์ ๋๋ค. array ์ ๊ฐ๋ค ์ค ๊ฐ์ฅ ์์ ๊ฐ์ ๋ฆฌํดํด์ฃผ์ธ์. ๋ง์ผ array๊ฐ ๋น์ด์์ผ๋ฉด 0์ ๋ฆฌํดํด์ฃผ์ธ์. ์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ array์ด ์ธ์(input)์ผ๋ก ๋ค์ด์๋ค๋ฉด 1์ด ๋ฆฌํด๋์ด์ผ ํฉ๋๋ค. ex) [20, 200, 23, 1, 3, 9] */ function findSmallestElement(arr) { if (arr.length === 0) { return 0; //๋น ๋ฐฐ์ด์ด๋ฉด 0์ ๋ฆฌํด } else { let min = arr[0]; // ๋ณ์ min์ ๋ฐฐ์ด์ ์๋ฌด ๊ฐ(Index 0๋ฒ์งธ)์ ์์๋ก ์ค์ . (๊ฐ์์ ์ต์๊ฐ) for (i = 0 ; i < arr.length; i++) { // 0๋ฒ์งธ ์์๊ฐ๋ถํฐ ์์ํด์ ์ ์ฒด๋ฅผ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋๋ฆฐ๋ค(ํ๋์ฉ ๊ฐ์ ๋น๊ตํด๊ฐ) if (arr[i] < min ) { // arr๋ฐฐ์ด ๊ฐ์ด ์์๋ก ์ค์ ํ ๊ฐ(0๋ฒ์งธ ์์์ ๊ฐ)๋ณด๋ค ์์ผ๋ฉด, min = arr[i]; // ์ต์๊ฐ ๊ฐฑ์ } } return min; } } findSmallestElement([200, 30, 5, 7, 200, 1, 9]); // 1 ์ถ๋ ฅ // 200(๋ฐฐ์ด์์ 0๋ฒ์งธ ๊ฐ)๊ณผ ์์ฐจ์ ์ผ๋ก ๋น๊ตํด๊ฐ๋ฉด์ ์ต์๊ฐ์ ๊ฐฑ์ ํด ๋๊ฐ๋ค /* 200 > 30 โก 30 = min 30 > 5 โก 5 = min 5 > 7 โก 5 = min 5 > 200 โก 5 = min 5 > 1 โก 1 = min */ // ๋ค๋ฅธ ํ์ด function findSmallestElement(arr) { for(let i=0; i<arr.length; i++){ if(arr.length >0) { let small = arr.sort(); return small[0] } else if (arr.length = 0) { return 0 } } } findSmallestElement([20, 200, 23, 1, 3, 9])
๐ ๋น ๋ฐฐ์ด ์ ์ธ ํ, ์์๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
index๋ก ์ ๊ทผ
ํ์ฌ ์์ ์ด๋ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
let cities = []; cities[0] = "์์ธ"; // ["์์ธ"] cities[1] = "๋์ "; // ["์์ธ", "๋์ "] cities[2] = "๋๊ตฌ"; // ["์์ธ", "๋์ ", "๋๊ตฌ"] cities[5] = "์ ์ฃผ๋"; // ["์์ธ", "๋์ ", "๋๊ตฌ", undefined, undefined, "์ ์ฃผ๋"] // ์์๋ฅผ ํ ๋นํ์ง ์์์ผ๋ฉด undefined ๋ผ๊ณ ์ถ๋ ฅ console.log(cities[5]); // "์ ์ฃผ๋" ์ถ๋ ฅ
๐ ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๊ฐํ๋ ๋๋ค๋ฅธ ๋ฐฉ๋ฒ
push
,unshift
ํจ์๋ก ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
โฉ push()
: array์ ๋ง์ง๋ง ๋ถ๋ถ, ์ฆ ๊ผฌ๋ฆฌ์ ์์๋ค์ ์ถ๊ฐ
โฉ unshift()
: array์ ๋งจ ์ ๋ถ๋ถ, ์ฆ ๋จธ๋ฆฌ์ ์์๋ค์ ์ถ๊ฐ
let cities = []; cities.push("๊ฒฝ์ฃผ", "์ ์ฃผ"); // 8 ์ถ๋ ฅ, ๊ธฐ์กด cities๋ฐฐ์ด ์์๋ค(6๊ฐ)์์ ๋ค์ 2๊ฐ ์ถ๊ฐํด์ 8. cities.unshift("์ธ์ฒ"); // 9 ์ถ๋ ฅ, cities๋ฐฐ์ด์ด ์ด 8๊ฐ๊ฐ ๋์๋๋ฐ ๋งจ ์์ 1๊ฐ ์ถ๊ฐํด์ 9. console.log(cities); // ['์ธ์ฒ', '์์ธ', '๋์ ', '๋๊ตฌ', undefined, undefined, '์ ์ฃผ๋', '๊ฒฝ์ฃผ', '์ ์ฃผ' ]
โ cities๋ผ๋ ๋ณ์์
[ ]
๋ฐฐ์ด์ ํ ๋นํ๋ ์๊ฐ, cities๋ผ๋ ๋ณ์๋ Arrayํ์ด ๋๋ค.
let day = ['m', 's', 'w', 't']; day[1] = 't'; // 2๋ฒ์งธ ์์ ์์ (๋ณ๊ฒฝ s โก t) day[4] = 'f'; // 4๋ฒ์งธ ์์ ์ถ๊ฐ day[5] = 's'; console.log(day); // ['m','t','w','t','f','s'] let month = [1, 2, 3, 4] month.push(5); // 5 ์ถ๋ ฅ console.log(month); // [1,2,3,4,5]
๐ ๋ฐฐ์ด์ ์์๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ
pop
shift
ํจ์๋ก ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ
โฉ pop()
: array์ ๊ผฌ๋ฆฌ์ ์์๋ค์ ์ ๊ฑฐ, ์ฆ ๊ฐ์ฅ ๋ง์ง๋ง ์์๊ฐ ์ ๊ฑฐ
๋๊ณ , ๋ง์ง๋ง ์์ 1๊ฐ์ ๊ฐ์ ๋ฐํ
โฉ shift()
: array์ ๋งจ ์ ๋ถ๋ถ, ์ฆ ๋จธ๋ฆฌ์ ์์๋ค์ ์ ๊ฑฐ
let cities = []; cities.pop("๊ฒฝ์ฃผ", "์ ์ฃผ"); // "์ ์ฃผ" ์ถ๋ ฅ, ๊ธฐ์กด cities๋ฐฐ์ด ์์๋ค(9๊ฐ)์์ ๋ค์์ ๊ฐ์ฅ ๋ง์ง๋ง ์์๋ง 1๊ฐ ์ ๊ฑฐํด์ 8๊ฐ๊ฐ ๋จ. cities.shift("์ธ์ฒ"); // '์ธ์ฒ' ์ถ๋ ฅ, cities๋ฐฐ์ด์ด ์ด 8๊ฐ๊ฐ ๋์๋๋ฐ ๋งจ ์์ 1๊ฐ ์ ๊ฑฐํด์ 7. console.log(cities); // ['์์ธ', '๋์ ', '๋๊ตฌ', undefined, undefined, '์ ์ฃผ๋', '๊ฒฝ์ฃผ']
/* divideArrayInHalf ํจ์์ ์ธ์์ธ array๋ ์ซ์ ๊ฐ์ผ๋ก๋ง ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ ์ ํํ ์ด 5๊ฐ์ ์์(element)๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. array์ ์์๋ค ์ค 10๊ณผ ๊ฐ๊ฑฐ๋ ์์ ๊ฐ์ element๋ค์ result์ ๋งจ ์์ผ๋ก, 10๋ณด๋ค ํฐ ๊ฐ์ ์์๋ค์ result์ ๋งจ ๋ค๋ก ์ฌ๊ตฌ์ฑ๋ ๋ฐฐ์ด์ ๋ฆฌํดํด์ฃผ์ธ์. (์ค์์ฌํญ) ์ด๋, ์์๋ array์ ๋งจ ๋ค์ ์์ ๋ถํฐ ๋งจ ์์ ์์๊น์ง ์์ฐจ์ ์ผ๋ก ์ด๋ฃจ์ด์ ์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ธ์ array ๊ฐ์ด ๋ค์๊ณผ ๊ฐ์๋ [1, 20, 10, 5, 100] result ๋ฐฐ์ด์ด ๋ง๋ค์ด ์ง๋ ์์๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, [100] [5, 100] [10, 5, 100] [10, 5, 100, 20] [1, 10, 5, 100, 20] ์๋์ ๊ฐ์ result๊ฐ ๋ฆฌํด ๋์ด์ผ ํฉ๋๋ค. [1, 10, 5, 100, 20] */ // (1) for๋ฌธ์ -๋ก ๊ตฌํํ ๋ฐฉ์ function divideArrayInHalf(array) { let result = []; // ๋น๋ฐฐ์ด๋ก ๋๋ค. push์ unshift๋ก ๋ฃ์ด์ค ๊ฒ์ด๊ธฐ ๋๋ฌธ. // ์ด๊ณณ์ ๋ค์ด๊ฐ ๊ฐ์ ํจ์ ํธ์ถํ ๋ ๋ฃ์ด์ค๋ค. // ํจ์๋ก ๋ฐฐ์ด๊ฐ ์ง์ โก for๋ฌธ์ ํตํด ์์ ์ง์ (์ ๋ ฌ) โก result๋ก ๋ฆฌํด for (let i = array.length; i>=0; i--){ // i๋ ๋ฐฐ์ด์ ์ ์ฒด ๊ธธ์ด(์์ง ๊ฐ์ ๋ฃ๊ณ ํธ์ถํ๊ธฐ ์ ์ด๋๊น), maximum์ด ์์ผ๋ฏ๋ก i--๋ฅผ ์จ์ 0๊น์ง ๊ฐ์ ์ค์ฌ๋๊ฐ๋ค. if(array[i] <= 10) { // ํต ๋ฐฐ์ด์ด 10๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋, result.unshift(array[i]); // result ๋ฐฐ์ด์ '๋งจ ์'๋ถํฐ ์ถ๊ฐํด๋ผ } if(array[i] > 10) { // ํต ๋ฐฐ์ด์ด 10๋ณด๋ค ํด ๋, result.push(array[i]); // result ๋ฐฐ์ด์ '๋งจ ๋ค'๋ถํฐ ์ถ๊ฐํด๋ผ } } return result; // result ๋ณ์(๊ฐ=๋ฐฐ์ด) ๋ฆฌํด } //ํจ์ ํธ์ถํ ๋ ๊ฐ์ ๋ฃ์ด์ค๋ค divideArrayInHalf([1, 20, 10, 5, 100]); // (2) for๋ฌธ์ +๋ก ๊ตฌํํ ๋ฐฉ์(arrow ํจ์์) let divideArrayInHalf = (arr) => { let result = []; for (i= 0; i < arr.length; i++){ if (arr[i] <= 10) { result.unshift(arr[i]); } if (arr[i] > 10) { result.push(arr[i]); } } return result; } divideArrayInHalf([1,40,5,84,9])