find 함수
는 배열에서 특정 값을 찾는 조건을 callback 함수
를 통해 전달
arr.find(callbk(element[, index[, array]])[, thisArg]
callbk
: 배열의 각 값에 대해 실행할 함수callbk 함수가 갖는 3개의 인자값 - element : 현재 처리중인 element - index : 현재 처리중인 배열의 index - array : find()를 호출한 배열
thisArg
: callbk 을 실행할 때 this 로 사용할 객체return
주어진 판별 함수를 만족하는 첫 번째 요소의 값
그 외에는undefined
const fruits = [
{name: 'apple', price : 1000},
{name: 'banana', price : 2000},
{name: 'apple', price: 3000}
];
function isApple(element) {
if(element.name === 'apple') {
return true;
}
}
const apple = fruits.find(isApple);
console.log(apple.name); // apple
console.log(apple.price); // 1000
const subject = [
{name: 'Kor', grade: 'A'},
{name: 'Eng', grade: 'B'},
{name: 'Math', grade: 'C'},
{name: 'Phyc', grade: 'D'},
{name: 'Sci', grade: 'E'}
];
let result = subject.find(function(item, index){
console.log(`${index}번째 index`);
return item.name === 'Eng'
});
// 1번째 index
console.log(result);
// {name: "Eng", grade: "B"}
callback 함수
의 조건에 부합하는 배열의 첫번째 index 값을 반환
const subject = [
{name: 'Kor'},
{name: 'Eng'},
{name: 'Math'},
{name: 'phyc'}
];
let result = subject.findIndex(function(item) {
return item.name === 'Math'
});
console.log(result); // 2
filter 함수
는 배열에서 특정 값을 찾는 조건을 callback 함수
를 통해 전달
arr.filter(callbk(element[, index[, array]])[, thisArg])
callbk
: 조건을 비교할 callback 함수callbk 함수가 갖는 3개의 인자값 - element : 현재 처리중인 element - index : 현재 처리중인 배열의 index - array : filter()를 호출한 배열
thisArg
: callbk 을 실행할 때 this 로 사용할 객체return
테스트를 통과한 요소로 이루어진 새로운 배열을 반환
조건을 만족하는 값이 없으면 빈 배열을 반환
const arr = ["월요일", "화요일", "수요일", "목요일", "금요일"];
const result = arr.filter((_, index) => index % 2 !== 0);
console.log(result); // [ '화요일', '목요일' ]
console.log(result.length); // 2
const numbers = [1, 2, 3, 4, 5];
const result = numbers.filter(num => {
numbers.push(num);
return num > 3; // num이 3 이상일 때만 return
});
console.log(result); // [4, 5]
const numbers = [1, 2, 3, 4, 5];
const newNumberes = numbers.filter(num => {
if (num > 1 && num < 5) {
return true;
}
else {
return false;
}
});
console.log(newNumberes); // [2, 3, 4]