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
// ===================================================