Sha256: 763277992a7ad50469cee5f3074579206e1cbac158a23375c98bbec28f115e6f

Contents?: true

Size: 631 Bytes

Versions: 255

Compression:

Stored size: 631 Bytes

Contents

module.exports = function School() {

  var db = {};

  function add(student, grade) {
    if(db[grade]) {
      db[grade].push(student);
    } else {
      db[grade] = [student];
    }
  }

  function grade(level) {
    return db[level] ? clone(db[level]).sort() : [];
  }

  function roster() {
    return sortedGrades().reduce(function(sorted, grade) {
      sorted[grade] = clone(db[grade]).sort();
      return sorted;
    }, {});
  }

  function sortedGrades() {
    return Object.keys(db).sort();
  }

  return {
    roster: roster,
    add: add,
    grade: grade
  };

};

function clone(array) {
  return array.slice();
}

Version data entries

255 entries across 255 versions & 1 rubygems

Version Path
trackler-2.2.1.37 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.36 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.35 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.34 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.33 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.32 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.31 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.30 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.29 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.28 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.27 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.26 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.25 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.24 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.23 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.22 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.21 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.20 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.19 tracks/javascript/exercises/grade-school/example.js
trackler-2.2.1.18 tracks/javascript/exercises/grade-school/example.js