배열에서 특정 조건을 만족하는 요소를 찾고싶을때 사용하는 함수이다.
const drinks = [
{ name:'coke',price:100},
{ name:'juice',price:500},
{ name:'milk',price:200},
{ name:'beer',price:800},
];
//find는 인자로 콜백함수를 하나 전달받아서 item에 넣어준다.
const item = drinks.find((drink, index)=> {
// 원하는 조건 : 가격이 200원인 음료 콜백함. 배열안을 돌면서 요소 마다 한번씩 콜백함수 실행
if(drink.price === 200 && index ===2){
return true
}
return false
})
// 원하는 조건없으면 undefined나옴
console.log(item);
배열에서 특정 조건을 만족하는 요소의 인덱스 값을 반환해주는 함수이다.
const drinks = [
{ name:'coke',price:100},
{ name:'juice',price:500},
{ name:'milk',price:200},
{ name:'beer',price:800},
];
const item = drinks.findIndex((drink, index)=> {
if(drink.price === 200){
return true
}
return false
})
// 원하는 조건없으면 -1을 반환합니다.
console.log(item);
배열안에 특정조건을 만족하는 요소가 1개라도 있는지 확인할수 있는 함수이다.
const drinks = [
{ name:'coke',price:100},
{ name:'juice',price:500},
{ name:'milk',price:200},
{ name:'beer',price:800},
];
const doesExist = drinks.some((drink)=> {
if(drink.price > 600){
return true
}
return false
})
// 한개라도 있으면 참 true , 거짓 false
console.log(doesExist);
배열안에 있는 모든 요소들이 특정조건을 만족하는지 확인하는 함수이다.
const drinks = [
{ name:'coke',price:100},
{ name:'juice',price:500},
{ name:'milk',price:200},
{ name:'beer',price:800},
];
const isOver = drinks.every((drink)=> {
if(drink.price > 50){
return true
}
return false
})
// 다 만족해야 참 true , 거짓 false
console.log(isOver);
배열에서 특정 조건을 만족하는 요소들만 쏙뺴서 새로운 배열을 만들어주는 함수이다.
const drinks = [
{ name:'coke',price:100},
{ name:'juice',price:500},
{ name:'milk',price:200},
{ name:'beer',price:800},
];
const cheapDrinks = drinks.filter((drink)=> {
if(drink.price <= 20){
return true
}
return false
})
// 원본배열을 건들이지않고 새로운 배열을 만든다는것
console.log(cheapDrinks);
원본배열을 요소들을 다른 형태로 변환하여 새로운 배열로 담아주는 함수이다.
const drinks = [
{ name:'coke',price:100},
{ name:'juice',price:500},
{ name:'milk',price:200},
{ name:'beer',price:800},
];
// 원본배열을 건들이지않고 새로운 배열을 만든다.
const priceTags = drinks.map((drink)=> {
//요소를 어떤 식으로 변환할건지 적어준다
return `${drinks.name}:${drinks.price}원`;
})
console.log(priceTags);
배열안에 있는 모든 요소들을 이용해서 하나의 최종 값으로 만들때 사용하는 함수이다.
const numbers = [1, 2, 3, 4];
//forEach
let total = 0;
numbers.forEach(number => {
total = total + number;
});
//reduce
//accumulator 현재까지 누적됨 값 total역활
//currentValue 현재확인되는 요소
const total = numbers.redece((accumulator, currentValue)=>{
return accumulator + currentValue
}, 0);
const numbers = [10, 4, 2, 8];
//forEach
let samllest = numbers.reduce((accumulator, currentValue) => {
if(accumulator>currentValue){
return currentValue;
}
return accumulator;
});
console.log(samllest);
let sumItem = cart.reduce((accumulator, currentValue) => {
return accumulator + currentValue.price;
},0);