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);