funktsiyasi filtr ( massiv , f ) { ruxsat bering natija = []
uchun ( ruxsat i = 0 ; i < massiv . uzunligi ; i ++ ) {
ruxsat bering element = massiv [ i ] if ( f ( element )) { natija . surish ( element )
}
}
qaytish natija } filtr ([ 1 , 2 , 3 , 4 ], _ => _ < 3 ) // [1, 2] ga baholanadi
filtrning to'liq turdagi imzosini chiqarib , turlar uchun noma'lum s o'rindiqlarini qo'shishdan boshlaylik:
turi Filtr = {
( massiv : noma'lum , f : noma'lum ) => noma'lum []
}
raqam bilan to'ldirishga harakat qilaylik :
turi Filtr = {
( massiv : raqam [] , f : ( element : raqam ) => mantiqiy ) : raqam []
}
Massiv elementlarini raqam sifatida yozish bu misol uchun yaxshi ishlaydi, lekin filtr umumiy funksiya boʻlishi kerak — siz raqamlar, satrlar, obʼyektlar, boshqa massivlar va har qanday narsani filtrlashingiz mumkin. Biz yozgan imzo raqamlar massivlari uchun ishlaydi, lekin boshqa turdagi elementlar massivlari uchun ishlamaydi. Keling, uni satrlar massivlarida ham ishlash uchun kengaytirish uchun ortiqcha yukdan foydalanishga harakat qilaylik:
turi Filtr = {
( massiv : raqam [], f : ( element : raqam ) => mantiqiy ) : raqam [] ( massiv : string [], f : ( element : string ) => mantiqiy ) : string []
}
Hozircha juda yaxshi (garchi har bir tur uchun ortiqcha yuk yozish tartibsiz bo'lishi mumkin). Ob'ektlar massivlari haqida nima deyish mumkin?
turi Filtr = {
( massiv : raqam [], f : ( element : raqam ) => mantiqiy ) : raqam []
( massiv : string [], f : ( element : string ) => mantiqiy ) : string []
( massiv : obyekt [], f : ( element : obyekt ) => mantiqiy ) : ob'ekt []
}
Bu birinchi qarashda yaxshi ko'rinishi mumkin, ammo keling, u qayerda buzilganligini ko'rish uchun undan foydalanishga harakat qilaylik. Agar siz ushbu imzo bilan filtr funksiyasini qo'llasangiz (ya'ni filter: Filtr ) va undan foydalanishga harakat qilsangiz, siz quyidagilarni olasiz:
Do'stlaringiz bilan baham: |