javascript# ๐ Array : ๋ฐฐ์ด
๋ฐฐ์ด์ ํน์ ํ ์์๋ค(๋ฐ์ดํฐ๋ค)์ ์ผ๋ ฌ๋ก ์ผ์ ํ๊ฒ ๋ชจ์๋์ ์งํฉ์ผ๋ก
๋ฐฐ์ด์์๋ ์์์ธ, element๋ค๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ, ์์๋ ์๋์ ๊ฐ๋ค.
let CamilleArray = [19, 50, 'What', false]
๋ฐฐ์ด์ ๋ค์ด๊ฐ ์ ์๋ ๋ฐ์ดํฐ ํ์ ์ ์๋ฌด๊ฑฐ๋ ๋ค์ด๊ฐ ์ ์์ผ๋ฉฐ, ์ฌ์ง์ด ๋ฐฐ์ด์์ ๋ค๋ฅธ ๋ฐฐ์ด ๋ํ ๋ค์ด๊ฐ ์ ์๋ค.
๋ฐฐ์ด์ ๋๋ค๋ฅธ ํน์ง์ ๋ฐฐ์ด์์๋ ์์๊ฐ ์๋ค๋ ์ ์ด๊ณ , 0๋ถํฐ ์์(index)๋ฅผ ์ ์ ์๋ค. ์ฌ๊ธฐ์ 19๋ 0๋ฒ์งธ์ ์์์ด๋ค.
let fruits = ['Apple', 'Banana','Lemon',100]
let first = fruits[0]
console.log(first);
< Apple
fruit ์์ [0] ์์๋ฒํธ๋ฅผ ์ ๋ ฅํ์ฌ ํด๋น ๋ฐฐ์ด์ ํด๋น ์์์ ์ ๊ทผ ํ ์ ์๋ค.
์์ฉ1
let fruits = ['Apple', 'Banana','Lemon',100]
let first = fruits[0]
fruits[0] = 'Strawberry';
console.log(fruits[0]);
< Strawberry
์์ฉ2
let fruits = ['Apple', 'Banana','Lemon',100]
let first = fruits[0]
fruits[0] = 'Strawberry';
fruits[2] = 300;
console.log(fruits);
<['Strawberry', 'Banana', 300, 100]
let fruits = ['Apple', 'Banana','Lemon',100]
console.log(fruits.length)
< 4
์ฌ๊ธฐ์ ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 4์ง๋ง ์ธ๋ฑ์ค(์์)๋ 3์ธ ์ด์ ๋ ๋ฐฐ์ด์ ์์์ 0๋ถํฐ ์ธ๊ธฐ ๋๋ฌธ์ด๋ค.
0,1,2,3 ์ด ๋ฐฐ์ด์ ๊ธธ์ด๋ 4์ด์ง๋ง ์ธ๋ฑ์ค์ ๋์ 3์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
๐ ์ ๋ ํด์ผํ ์ ! ๊ธธ์ด๊ฐ 4์ธ ๋ฐฐ์ด์ ์ธ๋ฑ์ค์ ๊ฐ์ฅ ๋์ 3์ด๋ค.
๊ธฐ๋ณธํ : ๋ฐฐ์ด๋ช .push(์ถ๊ฐํ ๋ด์ฉ)
let fruits = ['Apple', 'Banana','Lemon',100] fruits.push('Kiwi'); console.log(fruits) <['Apple', 'Banana','Lemon',100, 'Kiwi']
pop - ๋ฐฐ์ด ๋์์ ๋ถํฐ ์ญ์
1.
let fruits = ['Apple', 'Banana','Lemon',100]
fruits.pop();
<['Apple', 'Banana', 'Lemon']
2.
let fruits = ['Apple', 'Banana','Lemon',100]
fruits.pop();
fruits.pop();
<['Apple', 'Banana']
shift -๋ฐฐ์ด์ ๊ฐ์ฅ ์ฒ์ ๋ถํฐ ์ญ์
let fruits = ['Apple', 'Banana','Lemon',100]
fruits.shift();
<['Banana', 'Lemon', 100]
์์ ๊ทธ๋ฆผ์์๋
splice - (๋ฐฐ์ด์ index์ ์์์ ,์ญ์ ํ ์์์ ๊ฐ์,์ถ๊ฐํ๊ณ ์ถ์ ์์)๊ตฌ์ฒด์ ์ธ ์์๋ก ์ญ์
(์ธ์ 3๊ฐ๊ฐ ๋ค์ด๊ฐ ์์์ง๋ง, splice ๋ฉ์๋๋ ํ์์ ๋ฐ๋ผ ์ธ์๋ฅผ ์ต์ 1๊ฐ๋ง ์ธ ์๋ ์๋ค.)
์์ฉ1
let num = [1,2,3,4,5];
num.splice(2,1,10);
console.log(num); // [ 1, 2, 10, 4, 5 ]
์์ฉ2
let fruits = ['Apple', 'Banana','Lemon',100]
fruits.splice(1,2);
<['Banana', 'Lemon']
slice - (๋ฐฐ์ด์ index์ ์์์ , ๋ฐฐ์ด์ index์ ๋์ )
์ฒซ๋ฒ์งธ ์ธ์ : ๋ฐฐ์ด์ index์ ์์์ ๋๋ฒ์งธ ์ธ์ : ๋ฐฐ์ด์ index์ ๋์ ์๋ฅผ ๋ค์ด, [1,2,3,4,5] ๋ผ๋ ๋ฐฐ์ด์ด ์์ ๋, ์ซ์ 2~4๊น์ง๋ง ๋จ๊ธฐ๊ณ ์ถ์ ๋ผ
let nums = [1,2,3,4,5]
let nums_new = nums.slice(1,4)
console.log(nums) // [ 1, 2, 3, 4, 5 ]
console.log(nums_new) // [ 2, 3, 4 ]
let nums = [1,2,3,4,5]
let nums_new = nums.slice(1,4)
console.log(nums) // [ 1, 2, 3, 4, 5 ]
console.log(nums_new) // [ 2, 3, 4 ]
์์์ ์ธ index๊ฐ 1์ธ ์์๋ถํฐ ๋์ ์ธ index๊ฐ 4์ธ ์์๊น์ง๋ฅผ ํฌํจํด 2,3,4๋ฅผ ๋ด์ ๋ฐฐ์ด์ ๋ฆฌํดํ๋ค.
slice ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ดํ์ ์๋ณธ ๋ฐฐ์ด์ธ nums๋ฅผ ์ฝ์์ฐฝ์์ ํ์ธํด๋ณด๋ฉด ๋ณํจ์๋ ๊ฒ์ ํ์ธํ ์ ์๋๋ฐ, slice๋ฅผ ์ฌ์ฉํ ๋๋ ๊ผญ ์๋ก์ด ๋ณ์๋ช ์ ํ ๋นํด์ฃผ์ด์ผ ํ๋ค.
๐ ์์๊ฐ ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ!!
let nums = [1,2,3,4,5]
let nums_new = nums.slice(-2)
console.log(nums) // [ 1, 2, 3, 4, 5 ]
console.log(nums_new) // [ 4, 5 ]
์์๊ฐ ๋ค์ด๊ฐ ๊ฒฝ์ฐ ๋์์๋ถํฐ ํด๋นํ๋ ์ซ์ ๋งํผ์ ์์๋ฅผ ๋ฐฐ์ด์ ๋ด์ ๋ฆฌํดํ๊ฒ ๋๋ค.
filter : filter() ๋ฉ์๋๋ array ๊ด๋ จ ๋ฉ์๋๋ก ์กฐ๊ฑด์ ๋ง๋ ์์๋ค๋ง ๋ชจ์์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๋ค.
๋ง์ฝ ์กฐ๊ฑด์ ๋ถํฉ๋๋ ์์๊ฐ ์๋ฌด๊ฒ๋ ์๋ค๋ฉด ๋น ๋ฐฐ์ด์ ๋ฐํํ๋ค.
filter() ๋ฉ์๋๋ map() ๋ฉ์๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ํฌ๊ฒ filter(callbackFunction, thisAgr) 2๊ฐ์ ์ธ์๋ฅผ ๊ฐ์ง๋ค.
callbackFunction ์์์ 3๊ฐ์ ์ธ์ (element, index, array) ๋ฅผ ๊ฐ์ง๋๋ฐ ์ฒซ๋ฒ์งธ ๋ถ๋ถ์ธ element ์ธ์๋ง ํ์๋ก ์ง์ ๋์ด์ผํ๊ณ ๋๋จธ์ง๋ ์ ํ์ ์ด๋ค.
let fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];
function filtered () {
let result = fruits.filter(fruits => fruits.includes('ap'));
return result;
}
console.log(filtered());
let courses = [
{level:'easy', subject: "English" },
{level:'hard', subject: "Mathmatic" },
{level:'medium', subject: "Literature" },
{level:'hard', subject: "Science" },
{level:'medium', subject: "Socialogy" }
];
function filtered(){
let hardWord = courses.filter(courses => courses.level ==='hard');
return hardWord;
}
console.log(filtered());
value > 10 ์ด๋ผ๋ ์กฐ๊ฑด์ ๋ง๋ ์์๋ค๋ก๋ง ์ด๋ฃจ์ด์ง ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ค์๋ค.
let numbers = [10, 4, 32, 17, 5, 2];
// ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ (filter()์ ์ธ์์์ ๋ฐ๋ก ํจ์๋ฅผ ์จ์ฃผ๋ ๋ฐฉ๋ฒ)
let result = numbers.filter((value)=> value > 10);
console.log(result); // [ 32, 17 ]
// ๋๋ฒ์งธ ๋ฐฉ๋ฒ (๋ฐ์์ ํจ์๋ฅผ ์ ์ธํ๊ณ filter()์ธ์์์ callbackํ๋ ๋ฐฉ๋ฒ)
function isBiggerThanTen (value) {
return value > 10;
}
let result = numbers.filter(isBiggerThanTen);
console.log(result); // [ 32, 17 ]
let camille = ['Ca','Miile',[1,2,3,4,5],true,false] console.log(camille[2]); < [1, 2, 3, 4, 5]
์ฌ๊ธฐ์, ๋ฐฐ์ด์์ ์๋ ๋ฐฐ์ด ์์ฒด๊ฐ 2๋ฒ์งธ ์์๋ก ์ถ๋ ฅ๋๋ค.
let camille = ['Ca','Miile',[1,2,3,4,5],true,false]
console.log(camille[2][0]);
<1
์ค์ฒฉ๋ ๋ฐฐ์ด ! ์ฌ๊ธฐ์ ๋ฐฐ์ด์์ ํธ์ถ๋ ์์๋ ๋๊ดํธ๋ ์์ด 1ํ๋๊ฐ ๋์จ๋ค.
let camille = ['Ca','Miile',[1,2,3,4,5],true,false]
console.log(camille[camille.length-1]);
<false
๐ camille.length-1 ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ์์ฒญ ๊ธธ๊ฑฐ๋ ํ๋ฉด, ๋ง์ง๋ง ์ซ์๋ฅผ ์ป๊ธฐ์ ์ด๋ ค์ธ ์ ์๋ค.
๋ฐ๋ผ์ ๊ท์น์ ํ์ฉํด ์์ ๋ง๋ค์ด ์ ์ฉํ๋ฉด ๊ฐ์ฅ ๋ง์ง๋ง ์์๋ฅผ ์ธ์ ๋ ํ๋ฆฐํธํ๊ฒ ํ ์ ์๋ค. ๋ฐฐ์ด์ ์ด๊ธธ์ด -1 ํ๋ฉด ๋ง์ง๋ง ์์์ ์ธ๋ฑ์ค ๋๋ฒ์ ์ ๊ทผ ํ ์ ์๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก,
camille์ด๋ผ๋ ๋ฐฐ์ด์ ๊ฐ์ฅ ๋ง์ง๋ง ์์๋console.log(camille[camille.length-1]) ๋ก ๋์ถํด ๋ผ ์ ์๋ค.