forEach ํจ์์ for of // ๋ฐฐ์ด์์ ์ด๋ค.
const numbers = [1,2,3,4,5,6,7];
numbers.forEach(function(el) {
console.log(el)
})
// forEach์ for of ์ญํ ์ ๊ฐ๋ค
for (let el of numbers) {
console.log(el);
}
//์ถ๋ ฅ
1
2
3
4
5
6
7
์์ฆ์๋ forEach๋ฅผ ์ ์ฌ์ฉํ์ง ์๋๋ค๊ณ ํ๋ค.
๋ ์ฝ๊ณ ๊ฐํธํ for of๊ฐ ์๊ฒผ์ผ๋๊น!!
for in // ๊ฐ์ฒด์์ ์ฐ์ธ๋ค. ๊ฐ์ฒด ์์ ๋ชจ๋ ํค๋ฅผ ์ถ๋ ฅํ๋ค.
const hailie = {
name: 'hailie',
age:2,
city:'hawaii'
}
for(key in hailie) {
console.log(value);
}
// ์ถ๋ ฅ๊ฐ
name
age
city
ํ์ดํ ํจ์
const square = (x) => {
return x * x;
}
const square = x => {
return x * x;
}
// ๋งค๊ฐ๋ณ์๊ฐ 1๊ฐ๋ผ๋ฉด ๊ดํธ ๊ตณ์ด ์์จ๋ ๋๋ค. ์ผํฐ์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ง๋ ๋ฐฉ๋ฒ์ ์ฐ๋ฉด ๋๋ค.
const sum = (x, y) => {
return x + y;
}
const rollDie = () => {
return Math.floor(Math.random() * 6) + 1
}
// ์ ๋ฌ๋ ์ธ์๊ฐ ์๋ค๋ฉด ๋น์นธ์ผ๋ก ๋ฌ๋ ๋๋ค!
filter // ์ ๋ฐฐ์ด์ ๋ง๋ ๋ค. // ๊ธฐ์กด ๋ฐฐ์ด์ ์์ ์ค์์ ์ ์๊ธฐ์ฒ๋ผ ๋ด๊ฐ ์ํ๋ ์กฐ๊ฑด์ ๋ถํฉํ๋ ์์๋ง ๋ฝ์๋ด์ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ง๋ ๋ค.
const numbers = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
numbers.filter(n => {
return n < 10
})
// ์ถ๋ ฅ๊ฐ: [1, 2, 3, 4, 5, 6, 7, 8, 9]
// numbers๋ [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
// ์ํ! filter๋ ์ ๋ฐฐ์ด์ ๋ง๋๋๊ตฌ๋!
ํ์ ์ด ๊ฐ์ฅ ๋์ ์์ดํ , ์ค๋๋ ์์ดํ , ์๋ก์ด ์์ดํ ๋ฑ์ ํํฐ๋งํ ๋ ์ ์ฉํ๋ค.
const goodMovies = movies.filter(m => m.score > 80)
const goodTitles = goodMovies.map(m => m.title)
// ์๋ ์ฝ๋์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
movies.filter(m => m.score > 80).map(m => m.year > 2000)
reduce() ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ, ํ๋์ ๋ฐ์ดํฐ๋ก ์์ถ(reduce)ํ ๋ ์ฌ์ฉํ๋ค.
๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ์ฝ๋ฐฑ ํจ์์ ๋ง๊ฒ ํ๋๋ก ์์ถ์ํจ ๊ฐ์ ๋ฆฌํดํ๋ค.
๋์ , ํ์ฌ, ์ด๊ธฐ๊ฐ์ด ์ค์ํ๋ค!
acc: accumulation ์์ถ๋ ๊ฐ
cur: current ํ์ฌ ๋ฐฐ์ด ์์
let arr = [1,2,3,4,5]
arr.reduce((arr,cur) => {return acc + cur});
let arr = [1,2,3,4,5]
arr.reduce((acc,cur) => {
if(cur % 2 === 0) {
return acc + cur
} else {
return acc
}
},0)
- ์ด๊ธฐ๊ฐ์ด ์์๋
acc๋ ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์
cur๋ ๋ฐฐ์ด์ ๋๋ฒ์งธ ์์
๋ง์ง๋ง์๋ ์ต์ข ์ ์ธ acc๊ฐ์ด ๋ฆฌํด๋๋๊ฑฐ๋ค.
2. ์ด๊ธฐ๊ฐ์ด ์์๋
์ด๊ธฐ๊ฐ์ด acc๊ฐ ๋๋๊ฑฐ๊ณ ,
cur์ ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์๊ฐ ๋๋๊ฑฐ๋ค.
์ด๊ธฐ๊ฐ ์์ผ๋ฉด ๋ฐ๋ณตํ์๊ฐ ์์๋๋ณด๋ค ํ๋ฒ ๋ ๋ง๋ค.
const prices = [1000, 1500, 2000, 8000, 12000];
let total = 0;
for (let price of prices) {
total += price
}
console.log(total);
// ๊ฒฐ๊ณผ๊ฐ: 24500
// ๐์๋ ์ฝ๋๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ์ด ๋์จ๋ค.
const total = prices.reduce((total, price) => {
return total + price
})
console.log(total);
// ๊ฒฐ๊ณผ๊ฐ: 24500
// ๐์๋ ์ฝ๋๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ์ด ๋์จ๋ค.
const total = prices.reduce((total, price) => total + price)
map() ๋ฉ์๋๋ ๋ฐฐ์ด ๋ด์ ๋ชจ๋ ์์ ๊ฐ๊ฐ์ ๋ํ์ฌ ์ฃผ์ด์ง ํจ์๋ฅผ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๋ค.
// ๋ฐฐ์ด ๋ด์ ๋ชจ๋ ์์์ ์ํ๋ ํจ์์ ํ๋ผ๋ฏธํฐ๋ก ๋๊ฒจ์ค๋ค.
const array1 = [1, 4, 9, 16];
// pass a function to map
const map1 = array1.map(x => x * 2);
console.log(map1);
// expected output: Array [2, 8, 18, 32]