Sha256: 6b328b8f699d104821f1d2c7fe1f63f32fd35226b1908e5f46be53a752f9c9c0

Contents?: true

Size: 938 Bytes

Versions: 165

Compression:

Stored size: 938 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 };

Version data entries

165 entries across 165 versions & 1 rubygems

Version Path
trackler-2.2.1.159 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.158 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.157 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.156 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.155 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.154 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.153 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.152 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.151 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.150 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.149 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.148 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.147 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.146 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.145 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.144 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.143 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.142 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.141 tracks/ecmascript/exercises/wordy/example.js
trackler-2.2.1.140 tracks/ecmascript/exercises/wordy/example.js