# return (a % 2 == 0) in a filtering functions means?

**URL:** <https://forum.kirupa.com/t/return-a-2-0-in-a-filtering-functions-means/655563>\
**Category:** web dev\
**Created:** [December 17, 2022, 1:18pm UTC](https://forum.kirupa.com/t/return-a-2-0-in-a-filtering-functions-means/655563 "2022-12-17T13:18:17Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![polaryeti](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/polaryeti/32/19283_2.png) [@polaryeti](https://forum.kirupa.com/u/polaryeti)\
**Post date:** [December 17, 2022, 1:18pm UTC](https://forum.kirupa.com/t/return-a-2-0-in-a-filtering-functions-means/655563/1 "2022-12-17T13:18:17Z")

</div>

I’m doing this tutorial by kirupa:

[![](https://canada1.discourse-cdn.com/flex011/uploads/kirupa/original/3X/9/5/95782b2060a14d517e7c22aa8e31f57ca748049a.jpeg "Map, Filter, and Reduce") ](https://www.youtube.com/watch?v=Nn3COHjMkFQ)

```auto
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];

even_numbers = numbers.filter(fxn);

function fxn(a) {

return (a % 2 == 0);

}

console.log(even_numbers);

```

In this code we return (a%2==0). IMO, it returns true or false but not a. isn’t it? How does that work? I’m not getting. Does that mean this?

```auto
if(a%2==0)

{

return a;

}

```

---

<div class="post-metadata">

**Author:** ![kirupa](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/kirupa/32/11616_2.png) [@kirupa](https://forum.kirupa.com/u/kirupa)\
**Post date:** [December 17, 2022, 4:50pm UTC](https://forum.kirupa.com/t/return-a-2-0-in-a-filtering-functions-means/655563/2 "2022-12-17T16:50:04Z")

</div>

What we are doing with that line is checking if the number is even or odd by seeing what the remainder is when we divide by 2.

The result of that is **true** if the remainder is 0, and **false** if the remainder is something else.

What we are returning with that function is a true or false for each number. We don’t return the value of a.

🤓

---

<div class="post-metadata">

**Author:** ![polaryeti](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/polaryeti/32/19283_2.png) [@polaryeti](https://forum.kirupa.com/u/polaryeti)\
**Post date:** [December 18, 2022, 3:17am UTC](https://forum.kirupa.com/t/return-a-2-0-in-a-filtering-functions-means/655563/3 "2022-12-18T03:17:06Z")

</div>

but it outputs numbers, how?

---

<div class="post-metadata">

**Author:** ![kirupa](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/kirupa/32/11616_2.png) [@kirupa](https://forum.kirupa.com/u/kirupa)\
**Post date:** [December 18, 2022, 3:58am UTC](https://forum.kirupa.com/t/return-a-2-0-in-a-filtering-functions-means/655563/4 "2022-12-18T03:58:13Z")

</div>

That function gets called at each number. If the result is **true** , the number stays. If the result is **false** , the number is skipped.

---

<div class="post-metadata">

**Author:** ![polaryeti](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/polaryeti/32/19283_2.png) [@polaryeti](https://forum.kirupa.com/u/polaryeti)\
**Post date:** [December 18, 2022, 8:26am UTC](https://forum.kirupa.com/t/return-a-2-0-in-a-filtering-functions-means/655563/5 "2022-12-18T08:26:03Z")

</div>

Isn’t this a weird syntax? So that basically means return a if (a condition true)? right? is this specific to filter function that I’ve not read about?

---

<div class="post-metadata">

**Author:** ![steve.mills](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/steve.mills/32/14961_2.png) [@steve.mills](https://forum.kirupa.com/u/steve.mills)\
**Post date:** [December 18, 2022, 10:46am UTC](https://forum.kirupa.com/t/return-a-2-0-in-a-filtering-functions-means/655563/6 "2022-12-18T10:46:16Z")

</div>

No you can evaluate anything truthy or falsey with an if, ternary, switch/ case , while, for, nullish coalescing…. 🙂
