Skip to content

Instantly share code, notes, and snippets.

@escottalexander
Last active January 13, 2018 16:25
Show Gist options
  • Save escottalexander/1cb5ab6af2c41bf2f916280009e5ee48 to your computer and use it in GitHub Desktop.
Save escottalexander/1cb5ab6af2c41bf2f916280009e5ee48 to your computer and use it in GitHub Desktop.
function ajDiamond(input) {
input = input.toUpperCase();
var standardInput = ["A","B","C","D","E","F","G","H","I","J"];
var spacer = " ";
var index = standardInput.indexOf(input);
var halfArr = [];
var tempArr = [];
var sessionArr = function(index) {
var arr = [];
for (var i = 0; i < index; i ++) {
arr.push(standardInput[i]);
}
for (var j = index; j >= 0; j --) {
arr.push(standardInput[j]);
}
return arr;
};
if (index === -1) {
console.log("Invalid input '"+input+"'. Make sure you use a letter in the range A to J.");
} else {
console.log("Input: "+input);
console.log("Output: ");
console.log(" ");
for (var i = 0; i < sessionArr(index).length; i ++) {
if (i < (sessionArr(index).length/2)) {
for (var j = 0; j < i; j ++) {
tempArr.push(spacer);
}
} else {
for (var x = 2; x <= i; x ++) {
halfArr.push(halfArr[i-x]);
}
}
tempArr.push(sessionArr(index)[i]);
for (var y = i; y < index; y ++) {
tempArr.push(spacer);
}
halfArr.push(tempArr.join(""));
tempArr.splice(0, tempArr.length);
}
for (var z = 0; z < sessionArr(index).length; z++) {
var originalArr = halfArr[z];
var reverseArr = halfArr[z].slice(1,halfArr[z].length).split("").reverse().join("");
var fullArr = reverseArr.concat(originalArr);
console.log(fullArr);
}
console.log(" "); // for aesthetic purposes
}
}
// Test cases
ajDiamond("a");
ajDiamond("b");
ajDiamond("c");
ajDiamond("d");
ajDiamond("e");
ajDiamond("f");
ajDiamond("g");
ajDiamond("h");
ajDiamond("i");
ajDiamond("j");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment