Sha256: 9e963bb1504d93cb48b09b005e502ea702af36ceebbf12f54d0ce30d5683b6d7

Contents?: true

Size: 964 Bytes

Versions: 211

Compression:

Stored size: 964 Bytes

Contents

const ArgumentError = () => ({
  name:    "argument error",
  message: "oops"
});

const re = new RegExp(/(plus|minus|divided by|multiplied by)+/g);

class Wordy {

  constructor(question) {
    this.numbers = question.match(/[-]{0,1}\d+/g);
    this.operands = question.match(re);
  }

  answer() {
    if (!this.numbers || !this.operands) {
      throw new ArgumentError();
    }
    let ii = 1,
        jj = 0,
        result = +this.numbers[0];

    while (ii < this.numbers.length + 1) {
      const op = this.operands[jj++],
            b = +this.numbers[ii++] || null;
      switch (op) {
        case 'plus' :
          result += b;
          break;
        case 'minus' :
          result -= b;
          break;
        case 'multiplied by' :
          result *= b;
          break;
        case 'divided by' :
          result /= b;
          break;
      }
    }
    return result;
  }
}

export { Wordy as WordProblem, ArgumentError as ArgumentError};

Version data entries

211 entries across 211 versions & 1 rubygems

Version Path
trackler-2.2.0.0 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.55 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.54 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.53 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.52 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.51 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.50 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.49 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.48 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.47 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.46 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.45 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.44 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.43 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.42 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.41 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.40 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.39 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.38 tracks/ecmascript/exercises/wordy/example.js
trackler-2.1.0.37 tracks/ecmascript/exercises/wordy/example.js