Baseline Widely available
Array
ì¸ì¤í´ì¤ì findLast()
ë©ìëë ë°°ì´ì ììì¼ë¡ ìííë©° ì ê³µë í
ì¤í¸ í¨ì를 ë§ì¡±íë 첫 ë²ì§¸ ììì ê°ì ë°íí©ëë¤. í
ì¤í¸ í¨ì를 ë§ì¡±íë ììê° ìì¼ë©´ undefined
ê° ë°íë©ëë¤.
find()
를 ì¬ì©íì¸ì.findLastIndex()
를 ì¬ì©íì¸ì.indexOf()
를 ì¬ì©íì¸ì. (findIndex()
ì ë¹ì·íì§ë§, í
ì¤í¸ í¨ì를 ì¬ì©íë ê² ëì ê° ììê° ê°ê³¼ ëì¼íì§ íì¸í©ëë¤.)includes()
를 ì¬ì©í©ëë¤. ì´ ìì í
ì¤í¸ í¨ì를 ì¬ì©íë ê² ëì ê° ììê° ê°ê³¼ ëì¼íì§ íì¸í©ëë¤.some()
ì ì¬ì©íì¸ì.const array1 = [5, 12, 50, 130, 44];
const found = array1.findLast((element) => element > 45);
console.log(found);
// Expected output: 130
구문
findLast(callbackFn)
findLast(callbackFn, thisArg)
매ê°ë³ì
callbackFn
ë°°ì´ì ê° ììì ëí´ ì¤íí í¨ìì ëë¤. ì¼ì¹íë ìì를 ì°¾ìì¼ë©´ ì°¸ ê°ì ê°ì ë°ííê³ , ê·¸ë ì§ ìì¼ë©´ ê±°ì§ ê°ì ê°ì ë°íí´ì¼ í©ëë¤. í¨ìë ë¤ì ì¸ì를 ì¬ì©íì¬ í¸ì¶ë©ëë¤.
element
ë°°ì´ìì íì¬ ì²ë¦¬ëê³ ìë ìì.
index
ë°°ì´ìì íì¬ ì²ë¦¬ëê³ ìë ììì ì¸ë±ì¤.
array
findLast()
ê° í¸ì¶ë ë°°ì´.
thisArg
Optional
callbackFn
ì ì¤íí ë this
ë¡ ì¬ì©í ê°ì
ëë¤. ìí ë©ìë를 ì°¸ê³ íì¸ì.
ì ê³µë í
ì¤í¸ í¨ì를 ë§ì¡±íë ë°°ì´ì ë§ì§ë§(ê°ì¥ ëì ì¸ë±ì¤) ìì ê°. ì¼ì¹íë ìì를 ì°¾ì ì ìì¼ë©´ undefined
를 ë°íí©ëë¤.
findlast()
ë©ìëë ìí ë©ìëì
ëë¤. ì´ ë©ìëë callbackFn
ì´ ì°¸ ê°ì ë°íí ëê¹ì§, ë´ë¦¼ì°¨ì ì¸ë±ì¤ë¡ ììë¡ ë°°ì´ì ê° ììì ëí´ ì ê³µë callbackFn
í¨ì를 í ë²ì© í¸ì¶í©ëë¤. ê·¸ë° ë¤ì findlast()
ë í´ë¹ ìì를 ë°ííê³ ë°°ì´ ìí를 ì¤ì§í©ëë¤. callbackFn
ì´ ì°¸ ê°ì ë°ííì§ ìì¼ë©´, findlast()
ë undefined
를 ë°íí©ëë¤. ë³´í¸ì ì¼ë¡ ì´ë¤ ë©ìëê° ëìíë ë°©ë²ì ìê³ ì¶ì¼ìë¤ë©´ ìí ë©ìë ì¹ì
ì ì½ì´ë³´ì기 ë°ëëë¤.
callbackFn
ì ê°ì´ í ë¹ë ì¸ë±ì¤ë¿ë§ ìëë¼ ë°°ì´ì 모ë ì¸ë±ì¤ì ëí´ í¸ì¶ë©ëë¤. í¬ì ë°°ì´ì ë¹ ì¬ë¡¯ì undefined
ì ëì¼íê² ëìí©ëë¤.
find()
ë©ìëë ë²ì©ì
ëë¤. this
ê°ì length
ìì±ê³¼ ì ì í¤ ìì± ë§ì 기ëí©ëë¤.
ì´ ìì ë ë°°ì´ ììì ìì±ì 기ë°ì¼ë¡ í ì¤í¸ë¥¼ ë§ëë ë°©ë²ì ë³´ì¬ì¤ëë¤.
const inventory = [
{ name: "apples", quantity: 2 },
{ name: "bananas", quantity: 0 },
{ name: "fish", quantity: 1 },
{ name: "cherries", quantity: 5 },
];
// inventoryì ì¬ê³ ê° ë¶ì¡±íë©´ true를 ë°íí©ëë¤.
function isNotEnough(item) {
return item.quantity < 2;
}
console.log(inventory.findLast(isNotEnough));
// { name: "fish", quantity: 1 }
íì´í í¨ìì 구조 ë¶í´ ì¬ì©
ì´ì ìì ë íì´í í¨ìì 구조 ë¶í´ í ë¹ì ì¬ì©íì¬ ìì±í ì ììµëë¤.
const inventory = [
{ name: "apples", quantity: 2 },
{ name: "bananas", quantity: 0 },
{ name: "fish", quantity: 1 },
{ name: "cherries", quantity: 5 },
];
const result = inventory.findLast(({ quantity }) => quantity < 2);
console.log(result);
// { name: "fish", quantity: 1 }
ë°°ì´ìì ë§ì§ë§ ìì 찾기
ë¤ì ìì ë ë°°ì´ì ë§ì§ë§ ìì ì¤ ììì¸ ìì를 ë°ííê±°ë, ììê° ìë ê²½ì° undefined
를 ë°íí©ëë¤.
function isPrime(element) {
if (element % 2 === 0 || element < 2) {
return false;
}
for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
if (element % factor === 0) {
return false;
}
}
return true;
}
console.log([4, 6, 8, 12].findLast(isPrime)); // undefined, ì°¾ì§ ëª»í¨
console.log([4, 5, 7, 8, 9, 11, 12].findLast(isPrime)); // 11
callbackFnì ì¸ ë²ì§¸ ì¸ì ì¬ì©í기
array
ì¸ìë ë°°ì´ì ë¤ë¥¸ ììì ì ê·¼íë ¤ë ê²½ì°, í¹í ë°°ì´ì 참조íë 기존 ë³ìê° ìë ê²½ì°ì ì ì©í©ëë¤. ë¤ì ìì ììë 먼ì filter()
를 ì¬ì©íì¬ ìì ê°ì ì¶ì¶í ë¤ì findLast()
를 ì¬ì©íì¬ ì´ì ììë³´ë¤ ìì ë§ì§ë§ ìì를 ì°¾ìµëë¤.
const numbers = [3, -1, 1, 4, 1, 5, 9, 2, 6];
const lastTrough = numbers
.filter((num) => num > 0)
.findLast((num, idx, arr) => {
// arr ì¸ìê° ìì¼ë©´ ë³ìë¡ ì ì¥íì§ ìê³ ì¤ê°ì ìì±ë
// ë°°ì´ì ì½ê² ì ê·¼í ì ìë ë°©ë²ì ììµëë¤.
if (idx > 0 && num >= arr[idx - 1]) return false;
if (idx < arr.length - 1 && num >= arr[idx + 1]) return false;
return true;
});
console.log(lastTrough); // 2
í¬ì ë°°ì´ìì findLast() ì¬ì©
í¬ì ë°°ì´ì ë¹ ì¬ë¡¯ì 방문ëë©°, undefined
ì ëì¼íê² ì·¨ê¸ë©ëë¤.
// 2, 3, 4 ì¸ë±ì¤ì ììê° ìë ë°°ì´ë¡ ì ì¸
const array = [0, 1, , , , 5, 6];
// ê°ì´ ìë ììë§ì´ ìë 모ë ì¸ë±ì¤ë¥¼ íìí©ëë¤.
array.findLast((value, index) => {
console.log(`방문 ì¸ë±ì¤: ${index} ê°: ${value}`);
});
// 방문 ì¸ë±ì¤: 6 ê°: 6
// 방문 ì¸ë±ì¤: 5 ê°: 5
// 방문 ì¸ë±ì¤: 4 ê°: undefined
// 방문 ì¸ë±ì¤: 3 ê°: undefined
// 방문 ì¸ë±ì¤: 2 ê°: undefined
// 방문 ì¸ë±ì¤: 1 ê°: 1
// 방문 ì¸ë±ì¤: 0 ê°: 0
// ìì ë ìì를 í¬í¨íì¬ ëª¨ë ì¸ë±ì¤ë¥¼ íìí©ëë¤.
array.findLast((value, index) => {
// 첫 ë²ì§¸ ìíìì ìì 5 ìì
if (index === 6) {
console.log(`ê°ì´ ${array[5]}ì¸ array[5] ìì `);
delete array[5];
}
// ìì 5ê° ìì ëì´ë ì¬ì í 방문ë©ëë¤.
console.log(`방문 ì¸ë±ì¤: ${index} ê°: ${value}`);
});
// ê°ì´ 5ì¸ array[5] ìì
// 방문 ì¸ë±ì¤: 6 ê°: 6
// 방문 ì¸ë±ì¤: 5 ê°: undefined
// 방문 ì¸ë±ì¤: 4 ê°: undefined
// 방문 ì¸ë±ì¤: 3 ê°: undefined
// 방문 ì¸ë±ì¤: 2 ê°: undefined
// 방문 ì¸ë±ì¤: 1 ê°: 1
// 방문 ì¸ë±ì¤: 0 ê°: 0
ë°°ì´ì´ ìë ê°ì²´ìì findLast() í¸ì¶
findlast()
ë©ìëë this
ì length
ìì±ì ì½ì ë¤ì í¤ê° length
ë³´ë¤ ìì ììê° ìë ì ìì¸ ê° ìì±ì ì ê·¼í©ëë¤.
const arrayLike = {
length: 3,
0: 2,
1: 7.3,
2: 4,
3: 3, // lengthê° 3ì´ë¯ë¡ findlast()ìì 무ìë©ëë¤.
};
console.log(
Array.prototype.findLast.call(arrayLike, (x) => Number.isInteger(x)),
); // 4
ëª
ì¸ì ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4