JSFiddle - React, Tailwind, and code Playground

CSS

body{padding: 10px;}
td{
   border: 1px solid gray; 
   padding: 3px;
}

JavaScript

var engineData = [
    { name:"E-TEC V6", data:[
        { model:"300", power:221, hc:25.6,nox:3.9, co:251},
        { model:"250", power:186, hc:6.65,nox:3.9, co:84.9},
        { model:"200", power:149, hc:10.92,nox:3.4, co:114.2}
    ]},
    { name:"E-TEC V4", data:[
        { model:"130", power:95.6, hc:9.65,nox:3.2, co:122.8},
        { model:"115", power:85.8, hc:9.04,nox:3.5, co:114.9}
    ]},     
    { name:"E-TEC Inline", data:[
        { model:"90", power:65.7, hc:8.73,nox:3.6, co:69.81}
    ]},    
    { name:"Verado I6", data:[
        { model:"300 Gen2", power:221, hc:4.90,nox:15.0, co:109.2},
        { model:"250 Gen1", power:186, hc:11.09,nox:4.0, co:278}
    ]} ,
    { name:"Verado I4", data:[
        { model:"200 Gen1", power:147, hc:12.21,nox:3.2, co:336},
        { model:"200 Gen2", power:147, hc:6.18,nox:12, co:128.7},
        { model:"175 Gen1", power:131, hc:12.21,nox:3.2, co:336}
    ]} ,    
    { name:"Suzuki V6", data:[
        { model:"DF200", power:149, hc:5.36,nox:7.6, co:200.9},
        { model:"DF300", power:149, hcNox:12.9, co:200}
    ]},
    { name:"Suzuki Midsize", data:[
        { model:"DF90", power:66.2, hc:6.48,nox:6.1, co:233.5},
        { model:"DF70A", power:51.5, hc:3.47,nox:8.9, co:60.28}
    ]},    
    { name:"Yamaha", data:[
        { model:"F225", power:155, hc:10.686,nox:3.8, co:259.3},
    ]}      
];

var table =  document.createElement("table");
document.body.appendChild(table);     
init();

function init()
{
    for(var i=0;i<engineData.length;i++)
    {    
        var engineFamily = engineData[i];
        starLimits(engineFamily);
        calcStars(engineFamily);
        renderStars(engineFamily);
    }
}

function renderStars(engineFamily)
    {
        var title = table.insertRow(-1);
        var titleCell = title.insertCell(-1)
        titleCell.innerHTML = engineFamily.name;  
        titleCell.colSpan=5;         
        var header = table.insertRow(-1);
        header.insertCell(-1).innerHTML =...