Javascript filter() Metodu
ES5
Dizideki öğeleri belirli bir koşula göre filtreler. Filtrelenen öğeler varsa geriye döndürülür, yoksa boş bir dizi geriye döner.
Yapısı (Syntax)array.filter(function(currentValue, index, arr), thisValue)
Parametreler
-
currentValue
( ! ) Notice: Undefined property: stdClass::$type in /home/prototurk.com/public_html/app/view/article-js.php on line 64 Call Stack # Time Memory Function Location 1 0.0001 360912 {main}( ) .../index.php:0 2 0.0027 445080 require( '/home/prototurk.com/public_html/app/controller/category.php' ) .../index.php:101 3 0.0132 456712 require( '/home/prototurk.com/public_html/app/view/article.php' ) .../category.php:34 4 0.0197 536704 parseTemplate( ) .../article.php:112 5 0.0197 536816 preg_replace_callback ( ) .../template.php:126 6 0.0197 537336 bb_json( ) .../template.php:126 7 0.0198 564368 require( '/home/prototurk.com/public_html/app/view/article-js.php' ) .../template.php:220 Test edilen elemanın değeri -
index
( ! ) Notice: Undefined property: stdClass::$type in /home/prototurk.com/public_html/app/view/article-js.php on line 64 Call Stack # Time Memory Function Location 1 0.0001 360912 {main}( ) .../index.php:0 2 0.0027 445080 require( '/home/prototurk.com/public_html/app/controller/category.php' ) .../index.php:101 3 0.0132 456712 require( '/home/prototurk.com/public_html/app/view/article.php' ) .../category.php:34 4 0.0197 536704 parseTemplate( ) .../article.php:112 5 0.0197 536816 preg_replace_callback ( ) .../template.php:126 6 0.0197 537336 bb_json( ) .../template.php:126 7 0.0198 564368 require( '/home/prototurk.com/public_html/app/view/article-js.php' ) .../template.php:220 Test edilen elemanın indis değeri -
arr
( ! ) Notice: Undefined property: stdClass::$type in /home/prototurk.com/public_html/app/view/article-js.php on line 64 Call Stack # Time Memory Function Location 1 0.0001 360912 {main}( ) .../index.php:0 2 0.0027 445080 require( '/home/prototurk.com/public_html/app/controller/category.php' ) .../index.php:101 3 0.0132 456712 require( '/home/prototurk.com/public_html/app/view/article.php' ) .../category.php:34 4 0.0197 536704 parseTemplate( ) .../article.php:112 5 0.0197 536816 preg_replace_callback ( ) .../template.php:126 6 0.0197 537336 bb_json( ) .../template.php:126 7 0.0198 564368 require( '/home/prototurk.com/public_html/app/view/article-js.php' ) .../template.php:220 Test edilen elemanın ait olduğu dizi objesi
Dönen Değer
Koşula uyan öğeleri geriye döndürür.
Örnekler
Tüm küçük öğeleri filtrelemek
Aşağıdaki kod, değeri 10'dan büyük olan öğeleri filtreler.
function isBigEnough(value) {
return value > 10;
}
const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
console.log(filtered); // [12, 130, 44]
Arrow fonksiyonlarla kullanımı
Arrow fonksiyonları aynı işlemin daha kısa yazılmasını sağlar.
const filtered_with_arrow = [12, 5, 8, 130, 44].filter(value => value > 10);
console.log(filtered_with_arrow); // [12, 130, 44]
Objelerin değerlerine göre filtrelemek
Aşağıdaki kod, dizi içindeki objelerin değerlerine göre filtreme yapar.
const users = [
{
name: "Tayfun Erbilen",
age: 27
},
{
name: "Mehmet Seven",
age: 27
},
{
name: "Batuhan Aydın",
age: 28
}
];
const filtered = users.filter(user => user.age === 27);
console.log(filtered);
Arama yapmak
Öğeler içinde arama yapmak içinde bu metod kullanılır.
const names = ['Tayfun', 'tarkan', 'tufan', 'mehmet', 'ahmet', 'hayko'];
const search = keyword => names.filter(name => name.toLowerCase().includes(keyword.toLowerCase()));
console.log(search('ay')); // ["Tayfun", "hayko"]