Sha256: aa43803cbed56654257cd610b959116195c1db26cb17688bfad9fd3c09846054

Contents?: true

Size: 536 Bytes

Versions: 104

Compression:

Stored size: 536 Bytes

Contents

'use strict';

var BASE = 8;

function Octal(octal) {
  this.digits = octal.split('').reverse().map(this.digitValue);
}

Octal.prototype.toDecimal = function () {
  var decimal = this.digits.reduce(this.accumulator, 0);
  return isNaN(decimal) ? 0 : decimal;
};

Octal.prototype.digitValue = function (value) {
  var result = Number(value);
  return (result < BASE) ? result : Number.NaN;
};

Octal.prototype.accumulator = function (decimal, digit, index) {
  return decimal + digit * Math.pow(BASE, index);
};

module.exports = Octal;

Version data entries

104 entries across 104 versions & 1 rubygems

Version Path
trackler-2.2.1.98 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.97 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.96 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.95 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.94 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.93 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.92 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.91 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.90 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.89 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.88 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.87 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.86 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.85 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.84 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.83 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.82 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.81 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.80 tracks/javascript/exercises/octal/example.js
trackler-2.2.1.79 tracks/javascript/exercises/octal/example.js