JavaScript array filter method




Link for all dot net and sql server video tutorial playlists
http://www.youtube.com/user/kudvenkat/playlists

Link for slides, code samples and text version of the video
http://csharp-video-tutorials.blogspot.com/2014/12/javascript-array-filter-method.html

The filter() method creates a new array and populates that array with all the elements that meet the condition specified in a callback function.

Syntax : array.filter(callbackFunction[, thisArg])

Parameters
callbackFunction
Required. Function that gets called for each element of the array. If the function returns true, the element is kept otherwise filtered.

thisArg
Optional. An object to which the this keyword can refer in the callbackfn function.

The filter method calls the callbackfn function one time for each element in the array. If the callback function returns false for all elements of the array, the length of the new array that will be returned is 0.

Callback Function Syntax
function callbackFunction(value, index, array)

Callback Function Parameters
value
The value of the element in the array

index
The index position of the element in the array

array
The source array object that contains the element

Example 1 : Retrieve only even numbers from myArray

// Callback function
function IsEven(value, index, array)
{
if (value % 2 == 0)
{
return true;
}
else
{
return false;
}
}

// Source array
var myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// Pass the callback function as argument to the filter method
var result = myArray.filter(IsEven);

document.write(result);

Output : 2,4,6,8,10

Example 2 : In Example 1 we defined a callback function first and then passed it as an argument to the filter() method. In the example below, we created the callback function as an anonymous function directly in the filter method where it is required.

// Source array
var myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// callback function created directly in the filter method as anonymous function
var result = myArray.filter(function (v, i, a) { return v % 2 == 0 });

document.write(result);

Output : 2,4,6,8,10

Example 3 : Remove duplicates from javascript array

var myArray = [“Sam”, “Mark”, “Tim”, “Sam”];

var uniqueItems = myArray.filter(function (v, i, a) { return a.indexOf(v) == i });

document.write(uniqueItems);

Output :
Sam,Mark,Tim

Original source


25 responses to “JavaScript array filter method”

  1. Hey man, you're a great teacher. I like how you gave one basic example, and then another one using all of the callback function parameters. This channel will be my new secret weapon.

  2. Thanks for making such content which is easy to digest. Just want to share code which I tried. In above video if you specify same string with different case like uppercase and lower case this won't work. Following code snippet can be helpful

    var country = ["India", "USA", "Germany", "india"];
    var convertLowerCase = country.join('|').toLowerCase().split('|');

    var removeDuplicate = convertLowerCase.filter(function (value, index, array) {

    return convertLowerCase.indexOf(value) == index;

    });

    console.log(removeDuplicate);

  3. Thank you very much for breaking down the concept the way you have.

    I've checked out 5 different filter videos, and yours is the only one that explains the Value, Index, and Array of the the CallBack function. The detail you provide in your tutorial makes the concept very digestible and clear…so, thanks for that.

Leave a Reply