﻿
{"id":3356,"date":"2015-10-31T14:19:43","date_gmt":"2015-10-31T14:19:43","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=3356"},"modified":"2015-10-31T14:21:07","modified_gmt":"2015-10-31T14:21:07","slug":"knockoutjsde-arrayfilter-ile-dizi-filtreleme-islemleri","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/knockoutjsde-arrayfilter-ile-dizi-filtreleme-islemleri\/","title":{"rendered":"KnockoutJS&#8217;de arrayFilter \u0130le Dizi Filtreleme \u0130\u015flemleri"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>KnockoutJS mimarisinde bir dizi i\u00e7indeki elemanlar\u0131 belirli \u015fartlara g\u00f6re filtreleme i\u015flemlerini &#8220;ko.utils&#8221; alt\u0131ndaki &#8220;arrayFilter&#8221; metodu ile ger\u00e7ekle\u015ftirebiliriz.\u015eimdi gelin beraber bu konu \u00fczerinde \u00f6rneklendirme yapal\u0131m.<\/p>\n<p>Elimizde a\u015fa\u011f\u0131daki gibi bir arkada\u015f\u0131 modelleyen &#8220;Arkadas&#8221; isimli model olsun.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    function Arkadas(Adi, SoyAdi, Yasi, MedeniHali) {\r\n        return {\r\n            Ad: Adi,\r\n            Soyad: SoyAdi,\r\n            Yas: Yasi,\r\n            MedeniHal: MedeniHali\r\n        };\r\n    }\r\n<\/pre>\n<p>\u015eimdi ViewModelimizi yazal\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    function VMArkadaslar() {\r\n        Arkadaslar = ko.observableArray(&#x5B;\r\n            new Arkadas(&quot;Gen\u00e7ay&quot;, &quot;Y\u0131ld\u0131z&quot;, 25, false),\r\n            new Arkadas(&quot;Hilmi&quot;, &quot;Celayir&quot;, 35, true),\r\n            new Arkadas(&quot;Canan&quot;, &quot;Aytun&quot;, 28, true),\r\n            new Arkadas(&quot;Mustafa&quot;, &quot;\u00c7orumlu&quot;, 25, true),\r\n            new Arkadas(&quot;Sabri&quot;, &quot;Maltepe&quot;, 25, false),\r\n            new Arkadas(&quot;G\u00fclten&quot;, &quot;Dursun&quot;, 16, false)\r\n        ]);\r\n    }\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi ViewModelimizde &#8220;Arkadaslar&#8221; isminde bir dizi tan\u0131mlam\u0131\u015f ve i\u00e7ine Arkadas nesnelerini eklemi\u015f olduk.<\/p>\n<p>&#8220;MedeniHali&#8221; isimli property bool tipinden de\u011fer ta\u015f\u0131maktad\u0131r.\u015eimdi medeni hali bekar olan arkada\u015flar\u0131 filtreleyelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    function VMArkadaslar() {\r\n        Arkadaslar = ko.observableArray(&#x5B;\r\n           new Arkadas(&quot;Gen\u00e7ay&quot;, &quot;Y\u0131ld\u0131z&quot;, 25, false),\r\n            new Arkadas(&quot;Hilmi&quot;, &quot;Celayir&quot;, 35, true),\r\n           new Arkadas(&quot;Canan&quot;, &quot;Aytun&quot;, 28, true),\r\n            new Arkadas(&quot;Mustafa&quot;, &quot;\u00c7orumlu&quot;, 25, true),\r\n           new Arkadas(&quot;Sabri&quot;, &quot;Maltepe&quot;, 25, false),\r\n            new Arkadas(&quot;G\u00fclten&quot;, &quot;Dursun&quot;, 16, false)\r\n        ]);\r\n\r\n        Bekarlar = ko.computed(\r\n            function () {\r\n                return ko.utils.arrayFilter(Arkadaslar(), function (Arkadas) { return !Arkadas.MedeniHal });\r\n            })\r\n    }\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funu incelerseniz e\u011fer, ViewModelimizde &#8220;Bekarlar&#8221; isimli bir property olu\u015fturduk ve ko.utils.arrayFilter ile &#8220;Arkadaslar&#8221; dizisi i\u00e7erisinde MedeniHal \u00f6zelliklerine g\u00f6re filtreleme i\u015flemi ger\u00e7ekle\u015ftirdik.Tabi bu i\u015flemleri hesaplama komutu olan ko.computed metodu i\u00e7erisinde ger\u00e7ekle\u015ftirmi\u015f olduk.<\/p>\n<p>\u015eimdi bu iki diziyide template yap\u0131s\u0131n\u0131 kullanarak listeleyelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;table width=&quot;25%&quot;&gt;\r\n    &lt;tr&gt;\r\n        &lt;td&gt;T\u00fcm arkada\u015flar\u0131n say\u0131s\u0131 &lt;label style=&quot;color:red;&quot; data-bind=&quot;text: Arkadaslar().length&quot;&gt;&lt;\/label&gt;&lt;\/td&gt;\r\n        &lt;td&gt;Bekar arkada\u015flar\u0131n say\u0131s\u0131 &lt;label style=&quot;color:red;&quot; data-bind=&quot;text: Bekarlar().length&quot;&gt;&lt;\/label&gt;&lt;\/td&gt;\r\n    &lt;\/tr&gt;\r\n    &lt;tr&gt;\r\n        &lt;td&gt;\r\n            &lt;div&gt;\r\n                &lt;ul data-bind=&quot;template: { name: 'ArkadaslarTemplate', foreach: Arkadaslar }&quot;&gt;&lt;\/ul&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/td&gt;\r\n        &lt;td&gt;\r\n            &lt;div&gt;\r\n                &lt;ul data-bind=&quot;template: { name: 'BekarlarTemplate', foreach: Bekarlar }&quot;&gt;&lt;\/ul&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/td&gt;\r\n    &lt;\/tr&gt;\r\n&lt;\/table&gt;\r\n\r\n&lt;script id=&quot;ArkadaslarTemplate&quot; type=&quot;text\/html&quot;&gt;\r\n    &lt;li&gt;\r\n        &lt;strong&gt;Ad\u0131 : &lt;\/strong&gt;\r\n        &lt;span data-bind=&quot;text: Ad&quot;&gt;&lt;\/span&gt;\r\n        &lt;br \/&gt;\r\n        &lt;strong&gt;Soyad\u0131 : &lt;\/strong&gt;\r\n        &lt;span data-bind=&quot;text: Soyad&quot;&gt;&lt;\/span&gt;\r\n    &lt;\/li&gt;\r\n&lt;\/script&gt;\r\n\r\n&lt;script id=&quot;BekarlarTemplate&quot; type=&quot;text\/html&quot;&gt;\r\n    &lt;li&gt;\r\n        &lt;strong&gt;Ad\u0131 : &lt;\/strong&gt;\r\n        &lt;span data-bind=&quot;text: Ad&quot;&gt;&lt;\/span&gt;\r\n        &lt;br \/&gt;\r\n        &lt;strong&gt;Soyad\u0131 : &lt;\/strong&gt;\r\n        &lt;span data-bind=&quot;text: Soyad&quot;&gt;&lt;\/span&gt;\r\n    &lt;\/li&gt;\r\n&lt;\/script&gt;\r\n<\/pre>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/10\/KnockoutJSde-arrayFilter-\u0130le-Dizi-Filtreleme-\u0130\u015flemleri.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/10\/KnockoutJSde-arrayFilter-\u0130le-Dizi-Filtreleme-\u0130\u015flemleri.png\" alt=\"KnockoutJS&#039;de arrayFilter \u0130le Dizi Filtreleme \u0130\u015flemleri\" width=\"320\" height=\"249\" class=\"aligncenter size-full wp-image-3357\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/10\/KnockoutJSde-arrayFilter-\u0130le-Dizi-Filtreleme-\u0130\u015flemleri.png 320w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/10\/KnockoutJSde-arrayFilter-\u0130le-Dizi-Filtreleme-\u0130\u015flemleri-300x233.png 300w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/a><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi arrayFilter ile rahatl\u0131kla dizilerde filtreleme i\u015flemlerimizi ger\u00e7ekle\u015ftirebiliyoruz.<\/p>\n<p>\u00c7al\u0131\u015fmam\u0131z\u0131n tam halini a\u015fa\u011f\u0131da tekrardan derliyorum.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n    &lt;script src=&quot;~\/Scripts\/jquery-2.1.4.min.js&quot;&gt;&lt;\/script&gt;\r\n    &lt;script src=&quot;~\/Scripts\/knockout-3.3.0.js&quot;&gt;&lt;\/script&gt;\r\n    &lt;script src=&quot;~\/Content\/JQueryKutuphane.js&quot;&gt;&lt;\/script&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n&lt;table width=&quot;25%&quot;&gt;\r\n    &lt;tr&gt;\r\n        &lt;td&gt;T\u00fcm arkada\u015flar\u0131n say\u0131s\u0131 &lt;label style=&quot;color:red;&quot; data-bind=&quot;text: Arkadaslar().length&quot;&gt;&lt;\/label&gt;&lt;\/td&gt;\r\n        &lt;td&gt;Bekar arkada\u015flar\u0131n say\u0131s\u0131 &lt;label style=&quot;color:red;&quot; data-bind=&quot;text: Bekarlar().length&quot;&gt;&lt;\/label&gt;&lt;\/td&gt;\r\n    &lt;\/tr&gt;\r\n    &lt;tr&gt;\r\n        &lt;td&gt;\r\n            &lt;div&gt;\r\n                &lt;ul data-bind=&quot;template: { name: 'ArkadaslarTemplate', foreach: Arkadaslar }&quot;&gt;&lt;\/ul&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/td&gt;\r\n        &lt;td&gt;\r\n            &lt;div&gt;\r\n                &lt;ul data-bind=&quot;template: { name: 'BekarlarTemplate', foreach: Bekarlar }&quot;&gt;&lt;\/ul&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/td&gt;\r\n    &lt;\/tr&gt;\r\n&lt;\/table&gt;\r\n&lt;script id=&quot;ArkadaslarTemplate&quot; type=&quot;text\/html&quot;&gt;\r\n    &lt;li&gt;\r\n        &lt;strong&gt;Ad\u0131 : &lt;\/strong&gt;\r\n        &lt;span data-bind=&quot;text: Ad&quot;&gt;&lt;\/span&gt;\r\n        &lt;br \/&gt;\r\n        &lt;strong&gt;Soyad\u0131 : &lt;\/strong&gt;\r\n        &lt;span data-bind=&quot;text: Soyad&quot;&gt;&lt;\/span&gt;\r\n    &lt;\/li&gt;\r\n&lt;\/script&gt;\r\n&lt;script id=&quot;BekarlarTemplate&quot; type=&quot;text\/html&quot;&gt;\r\n    &lt;li&gt;\r\n        &lt;strong&gt;Ad\u0131 : &lt;\/strong&gt;\r\n        &lt;span data-bind=&quot;text: Ad&quot;&gt;&lt;\/span&gt;\r\n        &lt;br \/&gt;\r\n        &lt;strong&gt;Soyad\u0131 : &lt;\/strong&gt;\r\n        &lt;span data-bind=&quot;text: Soyad&quot;&gt;&lt;\/span&gt;\r\n    &lt;\/li&gt;\r\n&lt;\/script&gt;\r\n\r\n&lt;script type=&quot;text\/javascript&quot;&gt;\r\n    function VMArkadaslar() {\r\n        Arkadaslar = ko.observableArray(&#x5B;\r\n           new Arkadas(&quot;Gen\u00e7ay&quot;, &quot;Y\u0131ld\u0131z&quot;, 25, false),\r\n            new Arkadas(&quot;Hilmi&quot;, &quot;Celayir&quot;, 35, true),\r\n           new Arkadas(&quot;Canan&quot;, &quot;Aytun&quot;, 28, true),\r\n            new Arkadas(&quot;Mustafa&quot;, &quot;\u00c7orumlu&quot;, 25, true),\r\n           new Arkadas(&quot;Sabri&quot;, &quot;Maltepe&quot;, 25, false),\r\n            new Arkadas(&quot;G\u00fclten&quot;, &quot;Dursun&quot;, 16, false)\r\n        ]);\r\n\r\n        Bekarlar = ko.computed(\r\n            function () {\r\n                return ko.utils.arrayFilter(Arkadaslar(), function (Arkadas) { return !Arkadas.MedeniHal });\r\n            })\r\n\r\n    }\r\n    function Arkadas(Adi, SoyAdi, Yasi, MedeniHali) {\r\n        return {\r\n            Ad: Adi,\r\n            Soyad: SoyAdi,\r\n            Yas: Yasi,\r\n            MedeniHal: MedeniHali\r\n        };\r\n    }\r\n    $(document).ready(function () {\r\n        ko.applyBindings(VMArkadaslar);\r\n    });\r\n&lt;\/script&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>KnockoutJS mimarisinde bir dizi i\u00e7indeki elemanlar\u0131 belirli \u015fartlara g\u00f6re filtreleme i\u015flemlerini &#8220;ko.utils&#8221; alt\u0131ndaki &#8220;arrayFilter&#8221; metodu ile ger\u00e7ekle\u015ftirebiliriz.\u015eimdi gelin beraber bu konu \u00fczerinde \u00f6rneklendirme yapal\u0131m. Elimizde a\u015fa\u011f\u0131daki gibi bir arkada\u015f\u0131 modelleyen &#8220;Arkadas&#8221; isimli model olsun.&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":3014,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[796],"tags":[824,732,797,825,827,826],"class_list":["post-3356","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knockoutjs","tag-arrayfilter","tag-filtreleme","tag-knockoutjs","tag-knockoutjs-filtreleme","tag-ko-utils","tag-ko-utils-arrayfilter"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=3356"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3356\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/3014"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=3356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=3356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=3356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}