[Solved] How to display pyramid in Javascript?


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?