๐ ๋ฐฐ์ด์์ฑ
[๋ฐฉ๋ฒ1]
๊ฐ์ฒด์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ฅ ์ผ๋ฐ์ ์ด๊ณ ๊ฐํธํ ๋ฐฉ์์ ๋ฐฐ์ด ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ์ฌ ์์ฑํ๋ ๊ฒ์ด๋ค.
//๋ฐฉ๋ฒ1
const arr1 = [1,2,3];
console.log (arr1.length); //3
//๋ฐฉ๋ฒ2
const arr2 = [];
console.log(arr2.length) //0
//๋ฐฉ๋ฒ3
const arr3 = [1, , 3]; //ํฌ์๋ฐฐ์ด
console.log(arr3.length) //3
- ๋ฐฐ์ด ๋ฆฌํฐ๋ด์ 0๊ฐ์ด์ ์์๋ฅผ ์ผํ๋ก ๊ตฌ๋ณํ๋ฉฐ , [] ๋ก ๋ฌถ๋๋ค.
- ๋ฐฉ๋ฒ3์์์ arr3์ ํฌ์๋ฐฐ์ด (length๊ฐ ์ค์ ์์๊ฐ์๋ณด๋ค ํฐ ๋ฐฐ์ด)์ด๋ผ ํ๋ค.
(ํ์ง๋ง ํฌ์๋ฐฐ์ด์ ์ฌ์ฉํ์ง ์๋๊ฒ์ด ์ข๋ค. ๋ฐฐ์ด๊ณผ ๊ฐ๋ ์ ๋ง์ง ์์ผ๋ฉฐ ์ฑ๋ฅ์๋ ์์ข์ ์ํฅ์ด ์๊ธฐ ๋๋ฌธ)
[๋ฐฉ๋ฒ2]
Array ์์ฑ์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์์ฑํ ์ ์๋ค.
const arr1 = new Array(10); // 10๊ฐ์ ๋น๋ฐฐ์ด ์์ฑ
const arr2 = new Array(1,2,3); // [1,2,3] ์์ฑ
๐ ๋ฐฐ์ด๋ฉ์๋ - find
- ํน์ ์กฐ๊ฑด์ ๋ถํฉํ๋ ๊ฐ์ ์ฒซ๋ฒ์งธ ์์๋ฅผ ๋ฐํํ๋ค.
- filter์ ์ ์ฌํ๋ , ๋จ ํ๋์ ์์๋ง์ ์ฐพ๋๋ค๋ ์ ์ด ๋ค๋ฅด๋ค.
- ์ด๋ค ์์๋ ํน์ ์กฐ๊ฑด์ ๋ถํฉํ์ง ๋ชปํ๋ฉด undefined ๋ฅผ ๋ฐํํ๋ค.
- ์๋ณธ์์ X
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.find(i => i > 5); // 5๋ณด๋ค ํฐ ์ซ์์ค ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์์์ธ 6๋ฐํ
๐ ๋ฐฐ์ด๋ฉ์๋ - filter
- ํน์ ์กฐ๊ฑด์ ๋ถํฉํ๋ ๊ฐ์ ์ฐพ๊ณ ๊ทธ ๊ฐ๋ค๋ก ์ด๋ฃจ์ด์ง ์๋ก์ด ๋ฐฐ์ด์ ์ถ๋ ฅํ๋ค .
- ์ฆ, ์ฝ๋ฐฑํจ์์ ๋ฐํ๊ฐ์ด true์ธ ๋ชจ๋ ์์๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ง๋ค์ด ์ถ๋ ฅํ๋ค.
- ์๋ณธ์์ X
class Student {
constructor(name, age, enrolled, score) {
this.name = name;
this.age = age;
this.enrolled = enrolled;
this.score = score;
}
}
const students = [
new Student("A", 29, true, 45),
new Student("B", 28, false, 80),
new Student("C", 30, true, 90),
new Student("D", 40, false, 66),
new Student("E", 18, true, 88),
];
const result = students.filter((student) => student.enrolled);
console.log(result);
student.enrolled ๊ฐ true์ธ ์์๋ฅผ ๋ฐฐ์ด๋ก ๋ง๋ค์ด ์ถ๋ ฅํ๋ค.
[๊ฒฐ๊ณผ] |
๐ ๋ฐฐ์ด๋ฉ์๋ - map
- ์ด๋ฆ๊ณผ ๊ฐ์ด ๋ฐฐ์ด์ ์์๋ฅผ ๋๋ฉฐ ์์๋ค์ 1๋1 mapping์ ํด์ค๋ค.
- ๊ธฐ์กด์ ๊ฐ์ ์ฌ์ ์ํ ์๋ ์๊ณ , ์๋ก์ด ํํ์ ๊ฐ์ ์ ์ํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
- ์๋ณธ์์ X
class Student {
constructor(name, age, enrolled, score) {
this.name = name;
this.age = age;
this.enrolled = enrolled;
this.score = score;
}
}
const students = [
new Student("A", 29, true, 45),
new Student("B", 28, false, 80),
new Student("C", 30, true, 90),
new Student("D", 40, false, 66),
new Student("E", 18, true, 88),
];
// make an array containing only the students' scores
// result should be: [45, 80, 90, 66, 88]
const result = students.map((students) => students.score);
console.log(result);
students.score๋ก ๋งคํํ์ฌ result๊ฐ์ ์ ์ฅํ๋ค.
[๊ฒฐ๊ณผ] |
๋ํ Array.prototype.filter() ๋ฉ์๋๋ฅผ ์ด์ฉํจ์ผ๋ก์จ Method Chaining ์ ํตํด ๊ตฌํํ ์ ์๋ค.
* ๋ฉ์๋ ์ฒด์ด๋ ? ์ฌ๋ฌ ๋ฉ์๋๋ฅผ ์ด์ด์ ํธ์ถํ๋ ๋ฌธ๋ฒ |
const arr = [{
'name' : 'title1',
'contents' : 'contents1',
'dataNum' : 1,
'data' : [1, 2, 3]
}, {
'name' : 'title2',
'contents' : 'contents2',
'dataNum' : 2,
'data' : [1, 2, 3]
}, {
'name' : 'title3',
'contents' : 'contents3',
'dataNum' : 3,
'data' : [1, 2, 100]
}, {
'name' : 'title4',
'contents' : 'contents4',
'dataNum' : 4,
'data' : [1, 2, 3]
}, {
'name' : 'title5',
'contents' : 'contents5',
'dataNum' : 5,
'data' : [1, 2, 100]
}];
arr.map((i) => {
if (i.data.includes(100)) {
return i.name
}
return
}).filter(i => i);
//expected output: ['title3', 'title5']
map์ํตํด data์ 100๋ถ์ด ๋ค์ด์๋ name์ ๋ฐฐ์ด์ ๋งคํํ๊ณ , ๊ทธ๊ฐ๋ค์ค undefined ๋ ๊ฐ์ ์ ์ธํ ๊ฐ๋ค๋ง์ filter๋ก ์ถ๋ ฅํ๋ค.
[๊ฒฐ๊ณผ]- map์ ์ฌ์ฉํ์๋ ๊ฐ - map์ ์ฌ์ฉํ ํ filter์ ์ฌ์ฉํ์์๋ ๊ฐ |
* ์ฐธ๊ณ ๋ก ์๋ณธ๋ฐฐ์ด ์์ฒด๋ฅผ ์์ ํ๋ ๋ฉ์๋๋ ์๋์ ๊ฐ๋ค.
push() pop() shift() unshift() |
'FE > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ๊ตฌ์กฐ๋ถํด ํ ๋น (0) | 2022.05.11 |
---|---|
[JS] for of ๊ณผ for in (0) | 2022.05.11 |
[JS] ๋ฐฐ์ด - splice() , slice() ์ฐจ์ด (0) | 2022.05.03 |
[JS] String , Boolean , Object? (0) | 2022.05.02 |
[JS] ์์์๋ฃํ๊ณผ ์ฐธ์กฐ์๋ฃํ (0) | 2022.04.28 |