Sha256: 5936b33c6c73e91628a0d406d8e377c14421bb37d192288000b73ab03b07b9dc

Contents?: true

Size: 787 Bytes

Versions: 185

Compression:

Stored size: 787 Bytes

Contents

export default class Diamond {
  makeDiamond(input) {
    const inputIndex = input.charCodeAt() - 65;
    let output = '';
    let i = 0;
    for (i = 0; i <= inputIndex; i++) {
      output += getLine(inputIndex, i);
    }
    for (i = inputIndex - 1; i >= 0; i--) {
      output += getLine(inputIndex, i);
    }
    return output;
  }
}

function getLine(inputIndex, index) {
  const difference = inputIndex - index;
  return `${spaceTimes(difference) + printAlphabets(index) + spaceTimes(difference)}\n`;
}

function printAlphabets(index) {
  const character = 65 + index;
  if (index === 0) {
    return 'A';
  }
  return String.fromCharCode(character) + spaceTimes((index - 1) * 2 + 1) + String.fromCharCode(character);
}

function spaceTimes(times) {
  return ' '.repeat(times);
}

Version data entries

185 entries across 185 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.179 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.178 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.177 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.176 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.175 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.174 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.173 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.172 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.171 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.170 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.169 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.167 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.166 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.165 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.164 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.163 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.162 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.161 tracks/ecmascript/exercises/diamond/example.js
trackler-2.2.1.160 tracks/ecmascript/exercises/diamond/example.js