정의 및 사용 방법
배열의 findLast() 함수는
주어진 배열에서 콜백 함수의 조건을 만족하는 마지막 요소를 반환합니다.
조건에 맞는 요소가 없으면 undefined를 반환합니다.
[😃, 🏀, 🍎, 🍇, 🐵].findLast(function(찾는_요소) {
return 찾는_요소 === 과일;
}); // 👉 🍇
// 이 배열에서 찾는 요소의 조건인 과일(🍎, 🍇) 중 마지막 과일(🍇)이 반환됩니다.
findLast() 함수는 배열에서 특정한 조건을 만족하는 마지막 요소를 찾을 때 유용합니다.
특징
- 조건은 콜백 함수에서 적용합니다.
- 조건을 만족하면true, 만족하지 않으면false를 반환하도록 작성합니다. - 조건에 맞는 요소가 여러 개 있어도, 마지막으로 일치하는 요소만 반환됩니다.
- 이러한 동작으로 원본 배열은 변경되지 않고 그대로 유지됩니다.
기본 예제
아래 예제에서는 배열에서 조건을 만족하는 마지막 요소를 findLast() 함수로 찾는 방법을 보여줍니다. 각 단계별로 주석을 통해 동작을 설명합니다.
// 배열을 생성합니다.
const numbers = [1, 3, 7, 4, 6, 8, 9];
// 조건(짝수)을 만족하는 마지막 요소를 찾습니다.
const lastEven = numbers.findLast(function(num) {
return num % 2 === 0; // 짝수인지 확인
});
// 결과를 출력합니다.
console.log(lastEven); // 출력: 8
참고하세요!
배열의 find() 함수는 주어진 배열에서 콜백 함수의 조건을 만족하는 첫 번째 요소를 반환합니다.
구문
arr.findLast(callbackFn[, thisArg])
arr은 findLast() 함수를 적용할 배열입니다.
매개변수
callbackFn |
배열의 각 요소를 처리하는 콜백 함수입니다. findLast()는 배열의 끝에서부터 시작하여 각 요소에 대해 콜백 함수를 실행합니다.
콜백 함수 내에서 정의한 조건이 true로 평가되면 해당 요소를 찾은 것으로 간주하며, 그 요소를 반환하고 배열 순회를 중단합니다.
콜백 함수의 매개변수: callbackFn(element[, index[, array]])
|
|---|---|
thisArg |
옵션. callbackFn 함수 내부에서 사용할 this 값으로 사용할 값입니다. |
첫 번째 매개변수인 콜백 함수(callbackFn)과 관련되어 함수의 형태별 구문 형식은 다음과 같습니다.
// 화살표 함수
findLast((element) => { /* … */ })
findLast((element[, index]) => { /* … */ })
findLast((element[, index[, array]]) => { /* … */ })
// 콜백 함수
findLast(callbackFn)
findLast(callbackFn[, thisArg])
// 인라인 콜백 함수
findLast(function (element) { /* … */ })
findLast(function (element[, index]) { /* … */ })
findLast(function (element[, index[, array]]) { /* … */ })
findLast(function (element[, index[, array]]) { /* … */ }[, thisArg])
반환 값
콜백 함수가 찾아낸 첫 번째 조건을 만족하는 배열의 요소 중에서 인덱스가 가장 높은 요소를 반환합니다.
만약 조건을 만족하는 요소를 찾지 못했다면 undefined를 반환합니다.
콜백 함수의 작동 원리
callbackFn(element[, index[, array]])
findLast() 함수는 주어진 배열의 요소를 개발자가 직접 작성한 콜백 함수를 사용하여 원하는 조건에 따라 찾고, 조건을 충족하는 마지막 요소를 반환하는 함수입니다.
findLast() 함수의 콜백 함수는 배열의 끝에서부터 시작하여 요소들 중에서 콜백 함수 내에서 정의한 조건을 확인합니다. 조건은 return 문을 사용하여 정의되며, 조건이 true로 평가되면 해당 요소를 찾은 것으로 간주됩니다.
findLast() 함수는 조건을 만족하는 가장 인덱스가 높은 요소를 찾으면 배열 순회를 중단하고 해당 요소를 반환합니다. 그러면 코드 실행이 멈춥니다.
findLast() 함수에서 사용하는 콜백 함수의 구조
/**
* 콜백 함수
*
* @param {*} element 배열의 각 요소
* @param {number} index 배열의 인덱스 (선택적)
* @param {Array} array 원본 배열 (선택적)
* @return {boolean} 필터링 조건을 충족하면 true, 그렇지 않으면 false 반환
*
* 콜백 함수는 기명 함수(사용자 정의 함수)나 익명 함수 등으로 사용할 수 있습니다.
* (당연히) 모든 콜백 함수는 화살표 함수로 사용할 수 있습니다.
*/
/* 콜백 함수를 기명 함수를 사용할 경우 */
function callbackFn(element[, index[, array]]) { // 기명 함수 정의
// return 문을 사용하여 조건을 정의합니다.
}
arr.findLast(callbackFn); // 정의한 기명 함수명을 매개변수에 직접 전달
/* 콜백 함수를 익명 함수로 사용할 경우 */
arr.findLast(function (element[, index[, array]]) {
// return 문을 사용하여 조건을 정의합니다.
});
다양한 활용 사례
findLast() 함수는 배열에서 특정 조건을 만족하는 마지막 요소를 찾는데 사용되며, 다양한 활용 사례가 있습니다. 몇 가지 예시를 살펴보겠습니다.
배열에 특정 요소의 존재 유무 확인
배열에서 조건을 만족하는 요소가 존재하는지 확인할 때 사용할 수 있습니다.
const numbers = [1, 2, 3, 4, 5, 3];
const target = 3;
// 조건을 만족하는 마지막 요소를 찾습니다.
const found = numbers.findLast(element => element === target);
// 결과에 따라 메시지를 출력합니다.
if (found !== undefined) {
console.log(`찾는 값(${target})이 배열에 존재합니다. (뒤에서부터 찾음)`);
} else {
console.log(`찾는 값(${target})이 배열에 존재하지 않습니다.`);
}
// 출력: 찾는 값(3)이 배열에 존재합니다. (뒤에서부터 찾음)
객체 속성 기반 검색
객체 배열에서 특정 속성 값에 따라 객체를 검색할 때 유용합니다.
// 사람 객체 배열을 생성합니다.
const people = [
{name: "Alice", age: 30},
{name: "Bob", age: 25},
{name: "Bob", age: 28},
{name: "Charlie", age: 35}
];
// 찾고자 하는 이름을 변수로 정의합니다.
const targetName = "Bob";
// 배열 끝에서부터 name 속성이 targetName과 일치하는 마지막 사람 객체를 찾습니다.
const person = people.findLast(obj => obj.name === targetName);
// 결과를 출력합니다.
console.log(person); // 출력: {name: "Bob", age: 28}
사용자 지정 조건에 따른 검색
사용자 지정 조건 함수를 만들어 배열 요소 검색에 활용할 수 있습니다. findLast()는 뒤에서부터 찾아 해당하는 요소를 반환합니다.
// 상품 배열을 생성합니다.
const products = [
{name: "Laptop", price: 1000},
{name: "Phone", price: 200},
{name: "Tablet", price: 300},
{name: "Headphones", price: 500}
];
// 조건을 정의하는 콜백 함수를 만듭니다.
// 여기서는 가격이 600보다 작은 상품을 찾는 조건입니다.
const customCondition = product => product.price < 400;
// 배열에서 조건(customCondition)을 만족하는 마지막 상품을 찾습니다.
const affordableProduct = products.findLast(customCondition);
// 결과를 출력합니다.
console.log(affordableProduct); // 출력: {name: "Tablet", price: 300}
findLast() 함수를 사용하면 배열 끝에서부터 조건에 맞는 요소를 효과적으로 찾을 수 있으므로, 마지막 요소 검색이 필요한 다양한 상황에서 유용하게 활용할 수 있습니다.
호환성
| 메서드 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
Node.js
|
|---|---|---|---|---|---|
findLast()
|
97 | 97 | 104 | 15.4 | 18 |
명세서
| 명세서 사양 | |
|---|---|
findLast()
|
ECMAScript® 2026 Language Specification #sec-array.prototype.findlast |
같이 보기
- 자바스크립트 배열 find() 함수 – 콜백 함수의 조건에 맞는 첫 번째 요소 찾기
- 자바스크립트 findIndex() 함수 – 개념 정리 및 사용 예제
- 자바스크립트 map() 함수 – 개념 정리 및 사용 예제
- 자바스크립트 forEach() 함수 – 개념 정리 및 사용 예제
- 자바스크립트 filter() 함수 – 개념 정리 및 사용 예제
- 자바스크립트 reduce() 함수 – 개념 정리 및 사용 예제
- 자바스크립트 배열 indexOf() 함수 - 배열에서 요소의 위치 찾기
- 자바스크립트 배열 lastIndexOf() 함수- 배열에서 요소의 마지막 등장 위치 찾기
- 자바스크립트 문자열에 특정 문자 포함 여부 확인 - includes() 함수
- 자바스크립트 배열에 특정 요소 포함 여부 확인 - includes() 함수