JSFiddle - React, Tailwind, and code Playground

by jakie8

JavaScript

var polyTexMe = function(polynomials){

    var someLatex = [],
        i;
    
    for(i in polynomials){
    
        var coeffArray = polynomials[i],
            rawPoly = [],
            textLine = '',
            order = 0,
            j;
        
        for(j in coeffArray){
        
            var coefficient = coeffArray[j],
                plusSign = '',
                a = '',
                variable = '',
                texTerm = [];
            
            if(coefficient != 0){
                if(order > 1){
                    variable = 'x^{'+order+'}';
                } else if(order == 1){
                    variable = 'x';
                } else if(order == 0 && coefficient !=0){
                    a = coefficient;
                }
                
                if(coefficient*coefficient !=1){
                    a = coefficient;
                } else {
                    if(coefficient == -1){
                        if(order > 0){
                            a = '-';
                        } else {
                            a = '-1';
                        }
                    }
                }
            }
            
            if(coefficient > 0 && order < coeffArray.length-1){
                plusSign = '+';
            }
            
            texTerm = [plusSign, a, variable];
            rawPoly.push(texTerm.join(''));
            order += 1;
        }
        rawPoly.reverse();
        texLine = '\\item $'+(rawPoly.join(''))+'$';
        someLatex.push(texLine);
    }
    return someLatex;
};

var x = [0,3,-5,1],
    y = [-1,0,0,2,8],
    z = [4,2,0,-3],
    latex = polyTexMe([x, y, z]);

console.log(latex);