class Item {
constructor(itemNumber){
this.itemNumber = itemNumber;
}
toString(){
return "Item #" + this.itemNumber;
}
}
function myFilter(element, index, array){
return element.item.itemNumber > 3;
}
function myFormatter(element, index, array){
return {index, item: element, output: element.toString()};
}
var listOfObjects = [];
listOfObjects.push(new Item(5));
listOfObjects.push(new Item(4));
listOfObjects.push(new Item(1));
listOfObjects.push(new Item(8));
// var output = formatArray(listOfObjects, myFilter, myFormatter);
const output = listOfObjects
.map(myFormatter)
.filter(myFilter)
.map(e => `${e.index} ${e.output}`)
.join("\n");
console.log(output);