//[19]: 조건에 맞는 첫번째 요소 찾기 --> fid() --> 명세서 --> 콜백함수 사용
const testAr19 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];
console.log(testAr19);
//find() 메서드는 조건에 만족하는 첫 번째 요소의 값을 반환 --> 결과가 없다면 undefined 반환
const found = testAr19.find(function(element) {
//할 일 처리 ---> return
return element >= 71;
});
console.log(found); // 80 --> 주의해서 결과값 확인해야 함
const found2 = testAr19.find(function(element) {
//할 일 처리 ---> return
return element >= 101;
});
console.log(found2); // undefined --> 주의해서 결과값 확인해야 함
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//find() vs filter() 비교(차이점)
//find() 메서드 --> 찾는 즉시 첫 번째 요소의 값을 반환. 더 이상 순회하지 않음(X)
//filter() 메서드 --> 계속 순회함 --> 조건에 맞는 값을 다 찾아 줌
const testAr20 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 50];
let arData_loop_count = 0;
//반복횟수
const rst1 = testAr20.filter(ele => {
//할 일 처리 --> return
arData_loop_count++;
return ele == 50;
});
console.log("해당 메서드의 반복 횟수는 = " + arData_loop_count); // 11
console.log(rst1); // [50, 50]
console.log(typeof rst1); //object
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//[20]: 객체를 담고 있는 배열에서 특정 객체 찾기 --> find()
const cars = [
{name: 'Tesla', price: 50000},
{name: 'Benz', price: 80000},
{name: 'BMW', price: 70000},
{name: 'Audi', price: 60000}
];
console.log('-----------------------------------------------------find() - 콜백함수 외부에');
//콜백함수 외부에
function searchValue1(car) {
return car.name === 'Tesla';
}
//호출
console.log(cars.find(searchValue1)); // {"name": "Tesla","price": 50000}
console.log(cars.filter(searchValue1)); // {"name": "Tesla","price": 50000}
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
const cars = [
{name: 'Tesla', price: 50000},
{name: 'Benz', price: 80000},
{name: 'BMW', price: 70000},
{name: 'Audi', price: 60000}
];
console.log('-----------------------------------------------------find() - 콜백함수 내부에');
//콜백함수 내부에
let searchValue2 = cars.find(function(ele){
//할 일 처리 --> return
return ele.name === 'Audi';
});
//호출
console.log(searchValue2); // {"name": "Audi","price": 60000}
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
console.log('-----------------------------------------------------find() - 화살표 함수');
const cars = [
{name: 'Tesla', price: 50000},
{name: 'Benz', price: 80000},
{name: 'BMW', price: 70000},
{name: 'Audi', price: 60000}
];
//화살표 함수(=>)
let searchValue3 = cars.find(ele=>ele.name === 'Benz');
console.log(searchValue3); // {"name": "Benz","price": 80000}
'개발 및 관리 > Javascript' 카테고리의 다른 글
특정 문자열을 배열과 객체로 변환하기, for문 (0) | 2023.11.20 |
---|---|
isNan() vs Number.isNaN() 비교 (0) | 2023.11.18 |
include, join, reverse (0) | 2023.11.18 |
숫자, 문자 찾기 (0) | 2023.11.18 |
인덱스 몇 번째에 있는지 찾기 indexOf (1) | 2023.10.31 |