Descriptive programming - map and filter

by Preetha Srinivasan

JavaScript

function getData() {
  var arr = [{
    id: 1,
    name: 'java'
  }, {
    id: 2,
    name: 'css'
  }, {
    id: 3,
    name: 'scala'
  }, {
    id: 4,
    name: 'elm'
  }, {
    id: 5,
    name: 'go'
  }];
  return arr;
}

// Demonstrate the use of map function to print out the names of the objects in the array

function mapUsingVanilaJs(arr) {
  // Iterating an array using java script
  console.log('Demonstration of map using vanilla java script');
  for (var i = 0; i < arr.length; i++) {
    console.log(arr[i].name);
  }
}

function mapUsingMapFunction(arr) {
  // Iterating an array using map
  console.log('Demonstration of map using map function')
  arr.map(val => console.log(val.name));
}


function myOwnMapFunction(arr) {
  // Implementing map function
  console.log('Demonstration of map using my own map function')
  Array.prototype.myMap = function(projection) {
    var results = [];
    this.forEach(function(item) {
      results.push(projection(item));
    });
    return results;
  };


  arr.myMap(val => console.log(val.name));
}

// Demonstrate the use of filter function
function filterUsingVanilaJs(arr) {
  // print out the names of objects with even ids
  console.log('Demonstration of filter using vanilla java script');
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] % 2 == 0) {
      console.log(arr[i].name);
    }
  }
}

function filterUsingFilterFunction(arr) {
  // Using filter function
  console.log('Demonstration of filter using filter function');
  arr.filter(val => val.id % 2 == 0).map(val => console.log(val.name));
}

function myOwnFilterFunction(arr) {
  console.log('Demonstration of filter using my own filter function');
  Array.prototype.myFilter = function(predicate) {
    var results = [];
    this.forEach(function(item) {
      if (predicate(item))
        results.push(item);
    });
    return results;
  };
  console.log(arr.myFilter(val => val.id % 2 == 0).map(val => val.name));
}



function main() {
  var data = getData();
...