const getPriceByName = (name) => {
const foodMap = {
'ham':30,
'iceCream':20,
'potato':10,
//새로운 음식 추가 가능 ...
}
return foodMap[name]
}
2~3가지 이상의 if...else 조건문을 사용하지 않고 MAP을 이용할 수 있다.
const foods = [
{
name:'ham',
group: 1,
},
{
name: 'sandwich',
group: 1,
},
{
name:'candy',
group:1,
}]
const names = foods.filter((food)=> food.group === 1)
.map((food)=> food.name)
console.log(names) //['ham','sandwich','candy']
filter와 map을 사용하는 방식은 코드를 심플하게 만들어주고 구조적으로도 명확하게 만들어준다.
내가 햄버거를 고르고 친구가 초코렛을 골랐다고 가정한다. 우리는 서로의 음식을 교환하기를 원한다.
let myFood = 'hamburger'
let yourFood = 'chocolate'
let tempFood = myFood
myFood = yourFood
yourFood = tempFood
console.log(myFood,yourFood) //'chocolate','hamburger'
let myFood = 'hamburger'
let yourFood = 'chocolate'
[myFood,yourFood] = [yourFood, myFood]
console.log(myFood,yourFood) //'chocolate','hamburger'
const foods = [
{
name:'ham',
price: 30,
amount:10,
},
{
name: 'sandwich',
price:20,
amount:15,
},
{
name:'candy',
price:5,
amount:9
}]
손님이 사려는 물건은 총 얼마일까?
let sum = 0
foods.forEach((food)=>{
sum += food.price * food.amount
})
let sum = foods.reduce((acc,food)=> acc += food.price * food.amount,0)
더욱 직관적으로 알아볼 수 있다.