Baseline Widely available
filter()
㯠Array
ã¤ã³ã¹ã¿ã³ã¹ã®ã¡ã½ããã§ãæå®ãããé
åã®ä¸ããæå®ããã颿°ã§å®è£
ããã¦ãããã¹ãã«åæ ¼ããè¦ç´ ã ããæ½åºããã·ã£ãã¼ã³ãã¼ã使ãã¾ãã
const words = ["spray", "elite", "exuberant", "destruction", "present"];
const result = words.filter((word) => word.length > 6);
console.log(result);
// Expected output: Array ["exuberant", "destruction", "present"]
æ§æ
filter(callbackFn)
filter(callbackFn, thisArg)
弿°
callbackFn
é åã®ããããã®è¦ç´ ã«å¯¾ãã¦å®è¡ãã颿°ã§ãããã®é¢æ°ã¯ãé åã®è¦ç´ ãä¿æããå ´åã¯çå¤ãä¿æããªãå ´åã¯å½å¤ãè¿ãã¾ãããã®é¢æ°ã¯ä»¥ä¸ã®å¼æ°ã§å¼ã³åºããã¾ãã
element
é åå ã§å¦çä¸ã®ç¾å¨ã®è¦ç´ ã§ãã
index
é åå ã§å¦çä¸ã®ç¾å¨ã®è¦ç´ ã®ã¤ã³ããã¯ã¹ã§ãã
array
filter()
ãå¼ã³åºãããé
åã§ãã
thisArg
çç¥å¯
callbackFn
ãå®è¡ããéã« this
ã¨ãã¦ä½¿ç¨ãããå¤ãå復å¦çã¡ã½ãããåç
§ãã¦ãã ããã
æå®ãããé åã®ä¸é¨ããæå®ããã颿°ã§å®è£ ããããã¹ãã«åæ ¼ããè¦ç´ ã ãã«çµãè¾¼ãã§ã·ã£ãã¼ã³ãã¼ãããã®ã§ãããã¹ãã«åæ ¼ããè¦ç´ ããªãå ´åã¯ã空ã®é åãè¿ããã¾ãã
解説filter()
ã¡ã½ããã¯å復å¦çã¡ã½ããã§ããæå®ããã callbackFn
颿°ãé
åã®åè¦ç´ ã«å¯¾ãã¦ä¸åº¦ãã¤å¼ã³åºãã callbackFn
ãçå¤ãè¿ãããã¹ã¦ã®è¦ç´ ãããªãæ°ããé
åãçæãã¾ãã callbackFn
ã¯å¤ã代å
¥ããã¦ããé
åã®æ·»åã«å¯¾ãã¦ã®ã¿å¼ã³åºããã¾ãã
callbackFn
ã¯å¤ãå²ãå½ã¦ããã¦ããé
åã¤ã³ããã¯ã¹ã«å¯¾ãã¦ã®ã¿å¼ã³åºããã¾ããçé
åã®ç©ºã®ã¹ãããã«å¯¾ãã¦ã¯å¼ã³åºããã¾ããã
filter()
ã¡ã½ããã¯ã³ãã¼ã¡ã½ããã§ãããã㯠this
ã夿´ããã®ã§ã¯ãªããå
ã®é
åã¨åãè¦ç´ ãæ ¼ç´ããã·ã£ãã¼ã³ãã¼ãè¿ãã¾ãããããã callbackFn
ã¨ãã¦æå®ããã颿°ã¯é
åã夿´ãããã¨ãã§ãã¾ãããã ããé
åã®é·ã㯠callbackFn
ãæåã«å¼ã³åºãåã«ä¿åããããã¨ã«æ³¨æãã¦ãã ããããããã£ã¦ã
callbackFn
ã¯ã every()
ã®å¼ã³åºããå§ããã¨ãã®é
åã®é·ããè¶
ãã¦è¿½å ãããè¦ç´ ã«ã¯ã¢ã¯ã»ã¹ãã¾ãããcallbackFn
ãå度å¼ã³åºããããã¨ã¯ããã¾ãããcallbackFn
ã«ãã£ã¦å¤æ´ãããå ´åãcallbackFn
ã«æ¸¡ãããå¤ã¯ãã®è¦ç´ ãåå¾ãããæç¹ã§ã®å¤ã«ãªãã¾ããåé¤ãããè¦ç´ ã¯å¦çããã¾ãããè¦å: ä¸è¨ã®ããã«é²è¡ä¸ã®é åã«å¯¾ãã¦å¤æ´ãè¡ãã¨ãçè§£ãã«ããã³ã¼ãã«ãªããã¨ãå¤ãã®ã§ãï¼ç¹å¥ãªå ´åãé¤ãã¦ï¼é¿ããã®ãä¸è¬çã§ãã
filter()
ã¡ã½ããã¯æ±ç¨çã§ãããã®ã¡ã½ãã㯠this
ã®å¤ã« length
ããããã£ã¨æ´æ°ã®ãã¼ãæã£ãããããã£ããããã¨ã ããæ±ãã¾ãã
次ã®ä¾ã§ã¯ãfilter()
ã使ã£ã¦ 10 æªæºã®å¤ãæã¤è¦ç´ ããã¹ã¦åãé¤ããé
åãçæãã¾ãã
function isBigEnough(value) {
return value >= 10;
}
const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
é
åå
ã®ç´ æ°ããã¹ã¦æ¤ç´¢ãã
以ä¸ã®ä¾ã¯é åå ã®ãã¹ã¦ã®ç´ æ°ãè¿ãã¾ãã
const array = [-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
function isPrime(num) {
for (let i = 2; num > i; i++) {
if (num % i === 0) {
return false;
}
}
return num > 1;
}
console.log(array.filter(isPrime)); // [2, 3, 5, 7, 11, 13]
JSON ã®ä¸æ£ãªå
容ãåãé¤ã
次ã®ä¾ã§ã¯ãfilter()
ã使ã£ã¦ id
ã®æ°å¤ã 0 以å¤ã®è¦ç´ ã ãã«çµã£ã JSON ãçæãã¾ãã
const arr = [
{ id: 15 },
{ id: -1 },
{ id: 0 },
{ id: 3 },
{ id: 12.2 },
{},
{ id: null },
{ id: NaN },
{ id: "undefined" },
];
let invalidEntries = 0;
function filterByID(item) {
if (Number.isFinite(item.id) && item.id !== 0) {
return true;
}
invalidEntries++;
return false;
}
const arrByID = arr.filter(filterByID);
console.log("Filtered Array\n", arrByID);
// Filtered Array
// [{ id: 15 }, { id: -1 }, { id: 3 }, { id: 12.2 }]
console.log("Number of Invalid Entries =", invalidEntries);
// Number of Invalid Entries = 5
é
åå
ã®æ¤ç´¢
次ã®ä¾ã§ã¯ filter()
ã使ã£ã¦æ¤ç´¢æ¡ä»¶ã§é
åã®çµãè¾¼ã¿ããã¦ãã¾ãã
const fruits = ["apple", "banana", "grapes", "mango", "orange"];
/**
* Filter array items based on search criteria (query)
*/
function filterItems(arr, query) {
return arr.filter((el) => el.toLowerCase().includes(query.toLowerCase()));
}
console.log(filterItems(fruits, "ap")); // ['apple', 'grapes']
console.log(filterItems(fruits, "an")); // ['banana', 'mango', 'orange']
çé
åã«å¯¾ãã filter() ã®ä½¿ç¨
filter()
ã¯ç©ºã®ã¹ããããã¹ããããã¾ãã
console.log([1, , undefined].filter((x) => x === undefined)); // [undefined]
console.log([1, , undefined].filter((x) => x !== 2)); // [1, undefined]
é
åã§ãªããªãã¸ã§ã¯ãã«å¯¾ãã filter() ã®å¼ã³åºã
filter()
ã¡ã½ãã㯠this
ã® length
ããããã£ãèªã¿åãã length
æªæºã®éè² ã®æ´æ°ã®ãã¼ãæã¤ãã¹ã¦ã®ããããã£ã«ã¢ã¯ã»ã¹ãã¾ãã
const arrayLike = {
length: 3,
0: "a",
1: "b",
2: "c",
3: "a", // length ã 3 ã§ãããã filter() ã¯ç¡è¦ãã
};
console.log(Array.prototype.filter.call(arrayLike, (x) => x <= "b"));
// [ 'a', 'b' ]
åæã®é
åã¸ã®å½±é¿ï¼å¤æ´ã追å ãåé¤ï¼
以ä¸ã®ä¾ã¯ãé
åã夿´ãããæã® filter
ã®åä½ããã¹ããããã®ã§ãã
// ããããã®åèªã夿´
let words = ["spray", "limit", "exuberant", "destruction", "elite", "present"];
const modifiedWords = words.filter((word, index, arr) => {
arr[index + 1] += " extra";
return word.length < 6;
});
console.log(modifiedWords);
// 6 æåæªæºã®èªã¯ 3 ã¤ãããã夿´ããã¦ããã®ã§ 1 ã¤ããè¿ãããªã
// ["spray"]
// new ã®åèªã追å
words = ["spray", "limit", "exuberant", "destruction", "elite", "present"];
const appendedWords = words.filter((word, index, arr) => {
arr.push("new");
return word.length < 6;
});
console.log(appendedWords);
// `words` èªä½ã«ã¯ 6 æåæªæºã®åèªãããããå¢ããããæ¡ä»¶ã«åãã®ã¯ 3 ã¤ã ã
// ["spray" ,"limit" ,"elite"]
// åèªã®åé¤
words = ["spray", "limit", "exuberant", "destruction", "elite", "present"];
const deleteWords = words.filter((word, index, arr) => {
arr.pop();
return word.length < 6;
});
console.log(deleteWords);
// 'elite' ã¯ãã£ã«ã¿ã¼ãåå¾ããåã« 'words' ããåãåºããã¦ããã®ã§ãåå¾ããã¦ããªããã¨ã«æ³¨æ
// ["spray" ,"limit"]
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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