๊ทธ๋์ ๋ฐฐ์ด ๊ฒ๋ค์ด ์์๋ค...
๊ทธ๋ฅ for๋ฌธ์ ์จ๋ ๋๋ ์ํฉ์ ๊ตณ์ด๊ตณ์ด map์ ์ฌ์ฉํ ๋๋ ๋ฐ๋ณด๋ค
๊ทธ๋์ ์์ ์ ์ ๋ฆฌํด๋ ๋ฐ๋ณต๋ฌธ์ ๊ฐ์ ธ์๋ค...
๐ ๋์ค ์์ฝ
๊ฐ์ฒด ์ํ ํ ๋ → Object.keys
, Object.values
, Object.entries
๋ฐฐ์ด ์ํ ํ ๋ → forEach
, map
, filter
, reduce
๋ฑ๋ฑ
โ for
for (let i = 0; i < 10; i++) {
console.log(i);
}
- ๋๋์๊ณ ๋๋์๊ณ ๋ชจ๋๊ฐ ์๋ ๊ทธ for๋ฌธ
โ for in
const obj = {
name: '๊น์ ํ',
age: '4'
}
for (const key in obj) {
console.log(`${key} : ${obj[key]}`);
}
// name : ๊น์ ํ
// age : 4
- ํด๋น ๊ฐ์ฒด๊ฐ ์์๋ฐ๋ ํ๋กํ ํ์ ์ฒด์ธ ์์ ๋ชจ๋ property key๋ฅผ ์ด๊ฑฐ (์์์์๋ name, age)
โ for of
const cat = ['๊น์ ํ', '๊น๋ณ์ฒ ', '๋ฒ์ฐ'];
for (const c of cat) {
console.log(c); // ๊น์ ํ, ๊น๋ณ์ฒ , ๋ฒ์ฐ ์ถ๋ ฅ
}
- iterable ์ํ ์ ์ฉ (String, Array, Map, Set, Dom์ปฌ๋ ์ ๋ฑ)
- ๊ฐ์ธ์ ์ผ๋ก ํ์ด์ฌ์ for๋ฌธ์ด๋ ๋น์ทํ๊ฒ ์๊ฒผ๋ค๊ณ ์๊ฐ (for a in arr: )
โ while
let num = 0;
while (num<10) {
console.log(num); //0~9 ์ถ๋ ฅ
num++;
}
- ๋ชจ๋๊ฐ ์๋ ๊ทธ while๋ฌธ
โ do while
do {
console.log("๋ฌด์กฐ๊ฑด ํ๋ฒ์ ์คํํจ");
} while (false);
- ๋ฌด์กฐ๊ฑด ํ๋ฒ์ ์คํ๋๋ ๊ทธ while๋ฌธ
- ๊ทธ ๋ค์์๋ while๋ฌธ ์กฐ๊ฑด์ ๋ง์ผ๋ฉด ์คํ, ์๋๋ฉด ๊ด๋๊ณ ๋์ด
โ Object ๊ฐ์ฒด ๋ฉ์๋ (๊ฐ์ฒด ์ํ ์ ์ฉ)
Object.keys( {name: '๊น์ ํ', age: '4'} ); // ['name', 'age']
Object.values( {name: '๊น์ ํ', age: '4'} ); // ['๊น์ ํ', '4']
Object.entries( {name: '๊น์ ํ', age: '4'} ); // [ ['name', '๊น์ ํ'], ['age', '4'] ]
- Object.keys(๊ฐ์ฒด) →
key
๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํ - Object.values(๊ฐ์ฒด) →
value
๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํ - Object.entries(๊ฐ์ฒด) →
[key, value]
๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํ
โ Array.prototype ๋ฉ์๋ (๋ฐฐ์ด ์ ์ฉ)
// 1. forEach
['๊น์ ํ', '๊น๋ณ์ฒ ', '๋ฒ์ฐ'].forEach( (value, index, array) => {
console.log(value); // ๊น์ ํ, ๊น๋ณ์ฒ , ๋ฒ์ฐ ์ถ๋ ฅ
} )
// 2.map
const map_result = [1,2,3,4].map( (value, index, array) => {
console.log(value); // 1,2,3,4 ์ถ๋ ฅ
return value*10; //10, 20, 30, 40์ ๋ฐํ
} )
console.log(map_result); //[10,20,30,40]
//3. filter
const filter_result = [1,2,3,4].filter( (value, index, array) => {
console.log(value); // 1,2,3,4 ์ถ๋ ฅ
return value > 2; // 2๋ณด๋ค ํฐ ์ซ์๋ง return
} )
console.log(filter_result); //[3,4]
// 4. reduce
const reduce_result = [1,2,3,4].reduce( (pv, cv, index, arr) => {
return pv + cv; //์ด์ ๋ฆฌํด๊ฐ + ํ์ฌ ๊ฐ (๋์ ์ ๊ฐ๋
)
}, 100); //์ด๊ธฐ๊ฐ = 100
console.log(reduce_result); //100(์ด๊ธฐ๊ฐ) +1+2+3+4 = 110์ด ๋์ด
1. ๋ฐฐ์ด.forEach( (value, index, array) => { ... } )
- ๋ฐฐ์ด ์ํ ์ ์ฉ
- ์ฝ๋ฐฑํจ์์ ๋งค๊ฐ๋ณ์๋ก value(์์๊ฐ), index(์ธ๋ฑ์ค), array(์๋ณธ๋ฐฐ์ด)๊ฐ ๋ค์ด์ด
2. ๋ฐฐ์ด.map( (value, index, array) => { ... } )
- forEach์ ๊ฑฐ์ ๋น์ทํจ
- ๊ฐ ์ฝ๋ฐฑํจ์์์ returnํ๋ ๊ฐ๋ค๋ก ์ ๋ฐฐ์ด์ ๋ง๋ฌ!!!!
3. ๋ฐฐ์ด.filter( (value, index, array) => { ... } )
- forEach์ ๋น์ทํ๊ณ ์
- returnํ๋ ๊ฐ์ด true์ผ ๋์๋ง, ๊ทธ value๋ฅผ ๋ฐํ → ๊ทธ๊ฑธ ๋ชจ์์ ์๋ก์ด ๋ฐฐ์ด ์์ฑ ํ return
4. ๋ฐฐ์ด.reduce( (previousValue, currentValue, currendIndex, array)=>{ ... }, initialValue )
- initialValue๋ฅผ ์์๊ฐ์ผ๋ก ์ง์
- ๊ฐ ์ฝ๋ฐฑํจ์๊ฐ returnํ๋ ๊ฐ์ด ๋ค์์ ์คํ๋๋ ์ฝ๋ฐฑํจ์์ previousValue๋ก ๋ค์ด๊ฐ
- ์ต์ข ์ ์ผ๋ก ๋ง์ง๋ง ์ฝ๋ฐฑํจ์๊ฐ returhํ๋ ๊ฐ์ ๋ฐํํจ
๐์ฐธ๊ณ (๊ฐ์ฌํฉ๋๋ค)
'๐๊ณต๋ถ > JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ๋๋ฐ์ด์ค(Debounce) vs ์ค๋กํ(Throttle) (0) | 2021.10.12 |
---|---|
[JavaScript] var๊ณผ ํธ์ด์คํ (0) | 2021.10.11 |
[JavaScript] Callback vs Promise vs async-await (0) | 2021.10.10 |
[JavaScript] ํ์ดํํจ์ vs ์ผ๋ฐํจ์ (0) | 2021.10.09 |
[JavaScript] window.requestAnimationFrame() (0) | 2021.10.07 |
๋๊ธ