Njia ya filter

Njia filter inaruhusu kuchuja vipengele vya safu, ukiacha tu vile vinavyofaa kulingana na hali fulani. Njia hupokea kitendakazi kwenye kigezo, ambacho kitatekelezwa kwa kila kipengele cha safu. Kwa matokeo yake, njia hurudisha safu mpya, ambayo itajumuisha tu vipengele vile ambavyo kitendakazi kilichopitishwa kitarudisha true.

Kunaweza kupitisha vigezo vitatu kwenye kitendakazi. Ikiwa vigezo hivi vipo (sio lazima), basi kwa kiotomatiki kigezo cha kwanza kitapokea kipengele cha safu, cha pili kitapokea nambari yake kwenye safu (inkisi), na cha tatu - safu yenyewe.

Syntaxi

javascriptlet safu_mpya = safu.filter(function(kipengele, ineksi, safu) {
  msimbo
  return true au false
});

Mfano

Wacha tuchuje safu, tukiache ndani yake tu nambari chanya:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];

let res = arr.filter(function(elem) {
  if (elem >= 0) {
    return true;
  } else {
    return false;
  }
});

console.log(res);

Matokeo ya utekelezaji wa msimbo:

javascript[5, 1, 1, 3, 4]

Mfano

Wacha tufupishe msimbo, tukitumia kitendakazi cha mshale:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];

let res = arr.filter(elem => {
  if (elem >= 0) {
    return true;
  } else {
    return false;
  }
});

console.log(res);

Matokeo ya utekelezaji wa msimbo:

javascript[5, 1, 1, 3, 4]

Mfano

Wacha tufupishe msimbo, tukitumia ukarabati wa shughuli za kimantiki:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];

let res = arr.filter(elem => {
  return elem >= 0;
});

console.log(res);

Matokeo ya utekelezaji wa msimbo:

javascript[5, 1, 1, 3, 4]

Mfano

Wacha tufupishe msimbo, tukitumia sifa za vitendakazi vya mshale:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);

console.log(res);

Matokeo ya utekelezaji wa msimbo:

javascript[5, 1, 1, 3, 4]

Mfano

Ikiwa ni lazima, kigezo cha tatu kinaweza kupitishwa safu yenyewe:

javascriptlet res = arr.filter(function(elem, index, arr) {
  hapa safu arr itapatikana
});

Angalia pia

  • Njia map na forEach,
    ambazo huruhusu kutumia kitendakazi kwa kila kipengele cha safu
  • Njia some na every,
    zinazofanya ukaguzi wa safu
  • Njia reduce na reduceRight,
    zinazokunja safu kwa thamani moja