toc: true layout: notebook description: categories: [posts]

title: CB Performance Task Planning

  • This is an overview of javascript
console.log("Rohan Agarwal");
Rohan Agarwal
var msg = "Rohan Agarwal"
console.log(msg)
Rohan Agarwal
function logIt(output) {
    console.log(output);
}
logIt(msg)
Rohan Agarwal
console.log("Reuse of logIt")
logIt("Rohan Agarwal")
logIt(2023)
Reuse of logIt
Rohan Agarwal
2023
function LogItType(output) {
    console.log(typeof output, ";", output);
}
console.log("Looking at dynamic nature of types in JavaScript")
LogItType("Rohan Agarwal");
LogItType(2020);
LogItType([1, 2, 3]);
Looking at dynamic nature of types in JavaScript
string ; Rohan Agarwal
number ; 2020
object ; [ 1, 2, 3 ]
function Person(name, ghID, classOf) {
    this.name = name;
    this.ghID = ghID;
    this.classOf = classOf;
    this.role = "";
}

Person.prototype.setRole = function(role) {
    this.role = role;
}

Person.prototype.toJSON = function() {
    const obj = {name: this.name, ghID: this.ghID, classOf: this.classOf, role: this.role};
    const json = JSON.stringify(obj);
    return json;
}

var student = new Person("Rohan", "RohanAgr", 2023);
LogItType(student);
LogItType(student.toJSON());

teacher.setRole("Student");
LogItType(student);
LogItType(teacher.toJSON());
object ; Person { name: 'Rohan', ghID: 'RohanAgr', classOf: 2023, role: '' }
string ; {"name":"Rohan","ghID":"RohanAgr","classOf":2023,"role":""}
evalmachine.<anonymous>:22
teacher.setRole("Student");
^

ReferenceError: teacher is not defined
    at evalmachine.<anonymous>:22:1
    at ContextifyScript.Script.runInThisContext (vm.js:25:33)
    at Object.runInThisContext (vm.js:97:38)
    at run ([eval]:1020:15)
    at onRunRequest ([eval]:864:18)
    at onMessage ([eval]:828:13)
    at emitTwo (events.js:106:13)
    at process.emit (events.js:191:7)
    at process.nextTick (internal/child_process.js:758:12)
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
function Player(name, position, average) {
    this.name = name;
    this.position = position;
    this.average = average;
    this.role = "";
}

Player.prototype.setRole = function(role) {
    this.role = role;
}

Player.prototype.toJSON = function() {
    const obj = {name: this.name, position: this.position, average: this.average, role: this.role};
    const json = JSON.stringify(obj);
    return json;
}

var manager = new Player("Bob Melvin", "Catcher", ".233");
LogItType(manager);
LogItType(manager.toJSON());

manager.setRole("Manager");
LogItType(manager);
LogItType(manager.toJSON());
evalmachine.<anonymous>:19
LogItType(manager);
^

ReferenceError: LogItType is not defined
    at evalmachine.<anonymous>:19:1
    at ContextifyScript.Script.runInThisContext (vm.js:25:33)
    at Object.runInThisContext (vm.js:97:38)
    at run ([eval]:1020:15)
    at onRunRequest ([eval]:864:18)
    at onMessage ([eval]:828:13)
    at emitTwo (events.js:106:13)
    at process.emit (events.js:191:7)
    at process.nextTick (internal/child_process.js:758:12)
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
var players = [
    new Player("Manny Machado", "Third Base", ".299"),
    new Player("Trent Grisham", "Center Field", ".185"),
    new Player("Jake Cronenworth", "Second Base", ".238"),
    new Player("Jurickson Profar", "Left Field", ".240"),
    new Player("Ha-Seong Kim", "Shortstop", ".252"),
    new Player("Brandon Drury", "First Base", ".226"),
    new Player("Jorge Alfaro", "Catcher", ".249"),
    new Player("Wil Myers", "Right Field, First Base", ".255"),
    new Player("Juan Soto", "Right Field", ".242"),
    new Player("Austin Nola", "Catcher", ".248"),
    new Player("Josh Bell", "Designated Hitter, First Base", ".191"),
    new Player("Jose Azocar", "Outfield", ".272"), 
];

function Padres(manager, players){

    manager.setRole("Manager");
    this.manager = manager;
    this.padres = [manager];
    
    this.players = players;
    this.players.forEach(player => { player.setRole("Player"); this.padres.push(player); });

    this.json = [];
    this.padres.forEach(player => this.json.push(player.toJSON()));
}

sd2022 = new Padres(manager, players);

LogItType(sd2022.padres);
LogItType(sd2022.padres[0].name);
LogItType(sd2022.json[0]);
LogItType(JSON.parse(sd2022.json[0]));
object ; [ Player {
    name: 'Bob Melvin',
    position: 'Catcher',
    average: '.233',
    role: 'Manager' },
  Player {
    name: 'Manny Machado',
    position: 'Third Base',
    average: '.299',
    role: 'Player' },
  Player {
    name: 'Trent Grisham',
    position: 'Center Field',
    average: '.185',
    role: 'Player' },
  Player {
    name: 'Jake Cronenworth',
    position: 'Second Base',
    average: '.238',
    role: 'Player' },
  Player {
    name: 'Jurickson Profar',
    position: 'Left Field',
    average: '.240',
    role: 'Player' },
  Player {
    name: 'Ha-Seong Kim',
    position: 'Shortstop',
    average: '.252',
    role: 'Player' },
  Player {
    name: 'Brandon Drury',
    position: 'First Base',
    average: '.226',
    role: 'Player' },
  Player {
    name: 'Jorge Alfaro',
    position: 'Catcher',
    average: '.249',
    role: 'Player' },
  Player {
    name: 'Wil Myers',
    position: 'Right Field, First Base',
    average: '.255',
    role: 'Player' },
  Player {
    name: 'Juan Soto',
    position: 'Right Field',
    average: '.242',
    role: 'Player' },
  Player {
    name: 'Austin Nola',
    position: 'Catcher',
    average: '.248',
    role: 'Player' },
  Player {
    name: 'Josh Bell',
    position: 'Designated Hitter, First Base',
    average: '.191',
    role: 'Player' },
  Player {
    name: 'Jose Azocar',
    position: 'Outfield',
    average: '.272',
    role: 'Player' } ]
string ; Bob Melvin
string ; {"name":"Bob Melvin","position":"Catcher","average":".233","role":"Manager"}
object ; { name: 'Bob Melvin',
  position: 'Catcher',
  average: '.233',
  role: 'Manager' }
Padres.prototype._toHtml = function() {
    var style = (
        "display:inline-block;" +
        "border: 2px solid grey;" +
        "box-shadow: 0.8em 0.4em 0.4em grey;"
    );

    var body = "";
    body += "<tr>";
    body += "<th><mark>" + "Name" + "</mark></th>";
    body += "<th><mark>" + "Position" + "</mark></th>";
    body += "<th><mark>" + "Batting Average" + "</mark></th>";
    body += "<th><mark>" + "Role" + "</mark></th>";
    body += "</tr>";
    
    for (var row of sd2022.padres) {
        
        body += "<tr>";
        
        body += "<td>" + row.name + "</td>";
        body += "<td>" + row.position + "</td>";
        body += "<td>" + row.average + "</td>";
        body += "<td>" + row.role + "</td>";
        
        body += "<tr>";
      }
    
       
      return (
        "<div style='" + style + "'>" +
          "<table>" +
            body +
          "</table>" +
        "</div>"
      );
    
    };
    
    
    $$.html(sd2022._toHtml());
</table></div> </div> </div> </div> </div> </div> </div>
NamePositionBatting AverageRole
Bob MelvinCatcher.233Manager
Manny MachadoThird Base.299Player
Trent GrishamCenter Field.185Player
Jake CronenworthSecond Base.238Player
Jurickson ProfarLeft Field.240Player
Ha-Seong KimShortstop.252Player
Brandon DruryFirst Base.226Player
Jorge AlfaroCatcher.249Player
Wil MyersRight Field, First Base.255Player
Juan SotoRight Field.242Player
Austin NolaCatcher.248Player
Josh BellDesignated Hitter, First Base.191Player
Jose AzocarOutfield.272Player