10. Array of objects

You have given:

  let studentRecords = [ {name: 'John', id: 123, marks : 98 },
     {name: 'Baba', id: 101, marks : 23 },
     {name: 'yaga', id: 200, marks : 45 },
     {name: 'Wick', id: 115, marks : 75 } 
   ];
        

Que.1 We are interested in retrieving only the students' names; all the names should be in caps.

['JOHN', 'BABA', 'YAGA', 'WICK']

  let studentNames = studentRecords.map(student => student.name.toUpperCase());
  console.log(studentNames); // ['JOHN', 'BABA', 'YAGA', 'WICK']

        

Que.2 Suppose we have the same dataset as above but this time we want to get the details of students who scored more than 50 marks.

[{name: 'John', id: 123, marks: 98 }, {name: 'Wick', id: 115, marks: 75 }]

            
  let highScorers = studentRecords.filter((student) => student.marks > 50);
  console.log(highScorers); // [{name: 'John', id: 123, marks: 98 },{name: 'Wick', id: 115, marks: 75 }]

        

Que.3 Retrieve the details of students who scored more than 50 marks and have IDs greater than 120.

  let filteredStudents = studentRecords.filter(
    (student) => student.marks > 50 && student.id > 120
  );
  console.log(filteredStudents); // [{name: 'John', id: 123, marks: 98 }]
 
        

Que.4 Consider the same scenario we have discussed above, but this time we would like to know the sum total of the marks of the students.

  let totalMarks = studentRecords.reduce(
    (total, student) => total + student.marks, 0 );
  console.log(totalMarks); // 241
        

Que.5 This time we want to get only the names of the students who scored more than 50 marks from the same dataset used above.

  let highScorersNames = studentRecords.filter((student) => student.marks > 50).map((student) => student.name);
  console.log(highScorersNames); // ['John', 'Wick']

        

Que.6 This time we are required to print the sum of marks of the students with id > 120.

  let totalMarksIdGreaterThan120 = studentRecords.filter((student) => student.id > 120).reduce((total, student) => total + student.marks, 0);
  console.log(totalMarksIdGreaterThan120); // 98 + 45 = 143

        

Que.7 This time we are required to print the total marks of the students with marks greater than 50 after a grace of 15 marks has been added to those students who scored less than 50.

  let updatedMarks = studentRecords.map((student) => {
    if (student.marks < 50) {
      student.marks += 15;
    }
    return student;
    // updatedMarks = [
    //   { name: "John", id: 123, marks: 98 },
    //   { name: "Baba", id: 101, marks: 38 },
    //   { name: "yaga", id: 200, marks: 60 },
    //   { name: "Wick", id: 115, marks: 75 },
    // ];
  });
  let highScorersWithUpdatedMarks = updatedMarks.filter((student) => student.marks > 50);
  // highScorersWithUpdatedMarks = [
  //   { name: "John", id: 123, marks: 98 },
  //   { name: "yaga", id: 200, marks: 60 },
  //   { name: "Wick", id: 115, marks: 75 },
  // ];
  let totalMarksAfterGrace = highScorersWithUpdatedMarks.reduce((total, student) => total + student.marks, 0); 
    // totalMarksAfterGrace = 98 + 60 + 75 = 233
  console.log(totalMarksAfterGrace); // 233

        

Que.8 Create 6 objects , each object will have name, class, roll no as properties. Store these objects in an array of objects.

            
  let students = [
    { name: "John", class: "A", rollNo: 1 },
    { name: "Baba", class: "B", rollNo: 2 },
    { name: "Yaga", class: "A", rollNo: 3 },
    { name: "Wick", class: "B", rollNo: 4 },
    { name: "Alice", class: "A", rollNo: 5 },
    { name: "Bob", class: "B", rollNo: 6 },
  ];
  console.log(students); // [{name: 'John', class: 'A', rollNo: 1 }, {name: 'Baba', class: 'B', rollNo: 2 }, {name: 'Yaga', class: 'A', rollNo: 3 }, {name: 'Wick', class: 'B', rollNo: 4 }, {name: 'Alice', class: 'A', rollNo: 5 }, {name: 'Bob', class: 'B

        
Back
Next