Baseline Widely available
Array
實ä¾ç find()
æ¹æ³æåå³å¨æä¾çé£åä¸ç¬¬ä¸åé鿿便¸¬è©¦å½å¼çå
ç´ ãå¦ææ²æä»»ä½å¼é鿏¬è©¦å½å¼ï¼ååå³ undefined
ã
findIndex()
ãindexOf()
ãï¼éè findIndex()
é¡ä¼¼ï¼ä½å®æ¯ééå¼çç¸çæ§ä¾æª¢æ¥æ¯åå
ç´ ï¼èéä½¿ç¨æ¸¬è©¦å½å¼ãï¼includes()
ãå®å樣æ¯ééå¼çç¸çæ§ä¾æª¢æ¥æ¯åå
ç´ ï¼èéä½¿ç¨æ¸¬è©¦å½å¼ãsome()
ãfilter()
ãconst array1 = [5, 12, 8, 130, 44];
const found = array1.find((element) => element > 10);
console.log(found);
// é æè¼¸åºï¼12
èªæ³
find(callbackFn)
find(callbackFn, thisArg)
忏
callbackFn
æå°é£åä¸çæ¯åå ç´ å·è¡çå½å¼ãæ¤å½å¼æåå³çå¼ä»¥æåºæ¾å°ç¬¦åæ¢ä»¶çå ç´ ï¼å¦åæåå³åå¼ãæ¤å½å¼è¢«å¼å«æå¯ä»¥å³å ¥ä»¥ä¸å¼æ¸ï¼
element
é£åä¸ç®åæ£å¨èççå ç´ ã
index
é£åä¸ç®åæ£å¨èççå ç´ çç´¢å¼ã
array
å¼å« find()
çé£åã
thisArg
鏿æ§
å·è¡ callbackFn
æç¨ä½ this
çå¼ãè«åè¦è¿ä»£æ¹æ³ã
åå³ç¬¬ä¸åé鿏¬è©¦å½å¼çé£åå
ç´ ãå¦ååå³ undefined
ã
find()
æ¹æ³æ¯ä¸åè¿ä»£æ¹æ³ãå®æä»¥ç´¢å¼éå¢é åºå°é£åä¸çæ¯åå
ç´ å·è¡ä¸æ¬¡ææä¾ç callbackFn
å½å¼ï¼ç´å° callbackFn
åå³ä¸åçå¼ãæ¤æï¼find()
æåå³è©²å
ç´ ä¸¦åæ¢è¿ä»£é£åãè¥ callbackFn
æªæ¾åå³çå¼ï¼å find()
æåå³ undefined
ãè«åé±è¿ä»£æ¹æ³é¨å以深å
¥äºè§£éäºæ¹æ³çé使¹å¼ã
callbackFn
æéå°é£å䏿¯åç´¢å¼å·è¡ä¸æ¬¡ï¼ä¸å
éæ¼å·²è¢«è³¦å¼çç´¢å¼ãç¨çé£åä¸ç空槽æè¦çº undefined
ï¼è¡çºå°æç¸åã
find()
æ¹æ³æ¯éç¨çãå®åªè¦æ± this
å
·æ length
屬æ§ä»¥åæ´æ¸éµå±¬æ§å³å¯ã
const inventory = [
{ name: "apples", quantity: 2 },
{ name: "bananas", quantity: 0 },
{ name: "cherries", quantity: 5 },
];
function isCherries(fruit) {
return fruit.name === "cherries";
}
console.log(inventory.find(isCherries));
// { name: 'cherries', quantity: 5 }
使ç¨ç®é å½å¼èè§£æ§èªæ³
const inventory = [
{ name: "apples", quantity: 2 },
{ name: "bananas", quantity: 0 },
{ name: "cherries", quantity: 5 },
];
const result = inventory.find(({ name }) => name === "cherries");
console.log(result); // { name: 'cherries', quantity: 5 }
æ¾åºé£åä¸ç第ä¸å質æ¸
ä¸ä¾æåå³é£åä¸ç¬¬ä¸å質æ¸å
ç´ ï¼è¥æ¾ä¸å°è³ªæ¸ååå³ undefined
ã
function isPrime(element, index, array) {
let start = 2;
while (start <= Math.sqrt(element)) {
if (element % start++ < 1) {
return false;
}
}
return element > 1;
}
console.log([4, 6, 8, 12].find(isPrime)); // undefinedï¼æªæ¾å°
console.log([4, 5, 8, 12].find(isPrime)); // 5
ä½¿ç¨ callbackFn ç第ä¸å弿¸
array
弿¸å¨ä½ æ²æå¦å¤çè®æ¸åç
§é£åæç¹å¥æç¨ï¼è½è®ä½ ååé£åä¸å
¶ä»çå
ç´ ã以ä¸ä¾åä¸ï¼æåå
ç¨ filter()
ååºæææ£æ¸ï¼åç¨ find()
æ¾åºç¬¬ä¸åæ¯å
¶ç¸é°æ¸å¼é½å°çæ¸åã
const numbers = [3, -1, 1, 4, 1, 5, 9, 2, 6];
const firstTrough = numbers
.filter((num) => num > 0)
.find((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(firstTrough); // 1
å¨ç¨çé£åä¸ä½¿ç¨ find()
ç¨çé£åä¸çç©ºæ§½ä»æè¢«è¨ªåï¼ä¸¦è¢«è¦çºè undefined
ç¸åã
// 宣åå¨ç´¢å¼ 2ã3ã4 èç¡å
ç´ çé£å
const array = [0, 1, , , , 5, 6];
// 顯示ææç´¢å¼ï¼å
æ¬æªè³¦å¼ç
array.find((value, index) => {
console.log("訪åç´¢å¼", index, "ï¼å¼çº", value);
return false;
});
// 訪åç´¢å¼ 0 ï¼å¼çº 0
// 訪åç´¢å¼ 1 ï¼å¼çº 1
// 訪åç´¢å¼ 2 ï¼å¼çº undefined
// 訪åç´¢å¼ 3 ï¼å¼çº undefined
// 訪åç´¢å¼ 4 ï¼å¼çº undefined
// 訪åç´¢å¼ 5 ï¼å¼çº 5
// 訪åç´¢å¼ 6 ï¼å¼çº 6
// 顯示ææç´¢å¼ï¼å
æ¬è¢«åªé¤çå
ç´
array.find((value, index) => {
// å¨ç¬¬ä¸æ¬¡è¿ä»£æåªé¤å
ç´ 5
if (index === 0) {
console.log("åªé¤ array[5]ï¼å¼çº", array[5]);
delete array[5];
}
// å³ä½¿å·²åªé¤ï¼ç´¢å¼ 5 ä»æè¢«è¨ªå
console.log("訪åç´¢å¼", index, "ï¼å¼çº", value);
return false;
});
// åªé¤ array[5]ï¼å¼çº 5
// 訪åç´¢å¼ 0 ï¼å¼çº 0
// 訪åç´¢å¼ 1 ï¼å¼çº 1
// 訪åç´¢å¼ 2 ï¼å¼çº undefined
// 訪åç´¢å¼ 3 ï¼å¼çº undefined
// 訪åç´¢å¼ 4 ï¼å¼çº undefined
// 訪åç´¢å¼ 5 ï¼å¼çº undefined
// 訪åç´¢å¼ 6 ï¼å¼çº 6
å°éé£åç©ä»¶å¼å« find()
find()
æ¹æ³æè®å this
ç length
屬æ§ï¼ç¶å¾ä¾æéè² æ´æ¸ç´¢å¼åå尿屬æ§ã
const arrayLike = {
length: 3,
"-1": 0.1, // å çº -1 < 0ï¼find() æå¿½ç¥
0: 2,
1: 7.3,
2: 4,
};
console.log(Array.prototype.find.call(arrayLike, (x) => !Number.isInteger(x)));
// 7.3
è¦ç¯ ç覽å¨ç¸å®¹æ§ åè¦
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