Provided array length always should be sum of Natural Numbers(1+2+3+4…)
Natural Number : 1,2,3,4,5…
Few valid array lengths : 3,6,10,15,21…
Ex.
var array = ['1', '3', '4', '10', '2', '5', '9', '7', '8', '6'];
var array = ['1', '3', '4', '2', '5', '6'];
var array = ['15', '1', '3', '13', '4', '10', '2', '14', '5', '9', '12', '7', '8', '6', '11'];
function generatePyramid(arr) {
var pyramidSize = getPyramidSize(arr.length),
sortedArray = array.sort(function(a, b) { return parseInt(b) - parseInt(a) }),
count = 0;
if (pyramidSize == -1) {
return false;
}
for (var i = 0; i < pyramidSize; i++) {
var row = "";
for (var j = 0; j < pyramidSize - i; j++) {
row += " " + sortedArray[count];
count++;
}
console.log(row);
}
}
function getPyramidSize(size) {
var sum = 0,
isNotSumOfNaturalNumbers = -1;
for (var i = 1; sum < size; i++) {
sum += i;
if (sum == size) { return i };
}
console.error("Error: Length of provided array should be sum of Natural Numbers(Ex. 1+2+3...)");
console.warn("Next valid array length : ", sum);
return isNotSumOfNaturalNumbers;
}
//Define any array and call the method
var array = ['15', '1', '3', '13', '4', '10', '2', '14', '5', '9', '12', '7', '8', '6', '11'];
generatePyramid(array);
OutPut
15 14 13 12 11
10 9 8 7
6 5 4
3 2
1
solved How to display pyramid in Javascript?