Playing with Arrays

by jacobwsmith

JavaScript

// ===================================================
// Data
// ===================================================
var arr = [{
  name: 'Billy',
  type: 'Super Admin'
}, {
  name: 'Bob',
  type: 'User'
}, {
  name: 'Willy',
  type: 'Admin'
}];

// ===================================================
// Filter
// ===================================================
function filterMe(arr, filterStr) {
  return arr.filter(function(obj) {
  	var passed =  false;
    Object.getOwnPropertyNames(obj).forEach(function(val, idx, array) {
      if(obj[val].toString().toLowerCase().indexOf(filterStr.toString()) !== -1){
      	passed = true;
      }
    });
    return passed;
  });
};
var newArray = filterMe(arr, 'bo');
console.log(newArray);

// ===================================================
// Paging
// ===================================================
function paging(arr, currentPage){
  var rowsPerPage = 10;
  var begin = (currentPage === 0)?0:(rowsPerPage/currentPage);
  var end = begin + rowsPerPage;
  if(!arr && arr.length <= rowsPerPage){
  	return arr;
  }
  return arr.slice(begin, end);
}
var newArray = paging(arr, 0);
console.log(newArray);

// ===================================================
// Sorting
// ===================================================
function sorting(arr, name){
	return arr.sort(function(a, b){
    var nameA=a[name].toLowerCase(), nameB=b[name].toLowerCase();
    if (nameA < nameB) //sort string ascending
      return -1 
      if (nameA > nameB){
        return 1
      }
      return 0;
  })
}
var newArray = sorting(arr, 'type');
console.log(newArray);

// ===================================================
// TODO: use reduce and make one loop
// ===================================================