Sha256: 66e29d170911411ef15dfaddb9f172f09b0c80e526adb94abbbf756d82ac7e4a

Contents?: true

Size: 533 Bytes

Versions: 255

Compression:

Stored size: 533 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

255 entries across 255 versions & 1 rubygems

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