filter,map : Improving readability
by Cristi Salcescu
JavaScript
const tasks = [
{
id : 1,
type : "NC",
desc : "task1",
user : { id: 1, name: "user1"},
completed : false
},
{
id : 2,
type : "RE",
desc : "task2",
user : { id: 2, name: "user2"},
completed : false
},
{
id : 3,
type : "RE",
desc : "task3",
user : { id: 3, name: "user3"},
completed : false
}
];
//Imperative style
let filteredTasks = [];
for(let i=0; i<tasks.length; i++){
let task = tasks[i];
if (task.type === "RE" && !task.completed) {
filteredTasks.push({ ...task, userName: task.user.name });
}
}
console.log(filteredTasks);
//Functional style
function isPriorityTask(task){
return task.type === "RE" && !task.completed;
}
function toTaskView(task) {
return { ...task, userName: task.user.name };
}
let filteredTasksFP = tasks.filter(isPriorityTask).map(toTaskView);
console.log(filteredTasksFP);