Map Filter Reduce Questions Javascript
Q1. Return only name of students in Capital
let students = [
{ name: "Piyush", rollNumber: 31, marks: 80 },
{ name: "Jenny", rollNumber: 15, marks: 69 },
{ name: "Kaushal", rollNumber: 16, marks: 35 },
{ name: "DilPreet", rollNumber: 7, marks: 55 },
];
?
// Using For Loop
let names = [];
for (let i = 0 ; i < students.length ; i++) {
names.push(students[i].name.toUpperCase());
}
console.log(names);
// Using Map
const names = students.map((student) => {
return student.name.toUpperCase();
});
console.log(names);
Q2. Return only details of those who scored more than 60 marks
let students = [
{ name: "Piyush", rollNumber: 31, marks: 80 },
{ name: "Jenny", rollNumber: 15, marks: 69 },
{ name: "Kaushal", rollNumber: 16, marks: 35 },
{ name: "DilPreet", rollNumber: 7, marks: 55 },
];
?
// We'll be using filter
let moreThanSixty = students.filter((student) => {
return student.marks > 60;
});
console.log(moreThanSixty);
Q3. Return only details of those who score more than 60 & rollNumber greater than 15
let students = [
{ name: "Piyush", rollNumber: 31, marks: 80 },
{ name: "Jenny", rollNumber: 15, marks: 69 },
{ name: "Kaushal", rollNumber: 16, marks: 35 },
{ name: "DilPreet", rollNumber: 7, marks: 55 },
];
?
let details = students.filter((student) => {
return student.marks > 60 && student.rollNumber > 15;
})
console.log(details);
Q4. Calculate the sum of marks of all students
let students = [
{ name: "Piyush", rollNumber: 31, marks: 80 },
{ name: "Jenny", rollNumber: 15, marks: 69 },
{ name: "Kaushal", rollNumber: 16, marks: 35 },
{ name: "DilPreet", rollNumber: 7, marks: 55 },
];
?
let sum = students.reduce((acc, student) => {
return acc + student.marks;
}, 0)
console.log(sum);
Q5. Return only names of students who scored more than 60
let students = [
{ name: "Piyush", rollNumber: 31, marks: 80 },
{ name: "Jenny", rollNumber: 15, marks: 69 },
{ name: "Kaushal", rollNumber: 16, marks: 35 },
{ name: "DilPreet", rollNumber: 7, marks: 55 },
];
?
let names = students.filter((student) => {
return student.marks > 60
}).map((student) => {
return student.name;
})
console.log(names);
Q6. Return total marks for students with marks greater than 60 after 20 marks have been added to those who scored less than 60
let students = [
{ name: "Piyush", rollNumber: 31, marks: 80 },
{ name: "Jenny", rollNumber: 15, marks: 69 },
{ name: "Kaushal", rollNumber: 16, marks: 35 },
{ name: "DilPreet", rollNumber: 7, marks: 55 },
];
?
let sum = students
.map((student) => {
if (student.marks < 60) {
student.marks += 20;
}
return student; // return the entire student object not just the marks
})
.filter((student) => {return student.marks > 60})
.reduce((acc, student) => acc + student.marks, 0);
console.log(sum);