mercredi 17 juin 2020

Find index by breakpoints instead of multiple else if statements

I am trying to generate sizes based on a persons height. For the moment my program works but I would like to find a shorter way to get the size instead of using all these else if statements. I would like to loop through "breakpoints" to find the corresponding index.

This is my code

const sizes = ['xxs', 'xxs or xs', 'xs', 'xs or s'] // Goes on for all sizes...

function generateSize(height) {
    let size;

    if (height < 142) {
        size = sizes[0];
    } else if (height >= 142 && height < 148) {
        size = sizes[1];
    } else if (height >= 148 && height < 154) {
        size = sizes[2];
    } else if (height >= 154 && height < 160) {
        size = sizes[3]; // Goes on for all sizes...
    } else {
        size = 'larger...';
    }

    return size;
}

console.log(generateSize(158));


// Example of what I had in mind.
const heightBreakpoints = [142, 148, 154, 160];
function getByBreakpoints(breakpoints, height){ // Something like this.
    let index;
    // Loop through breakpoints...
    return index;
}
const sizeIndex = (getByBreakpoints(heightBreakpoints, 158));
const s = sizes[sizeIndex];

Aucun commentaire:

Enregistrer un commentaire