I need to sort an array of nested objects. I wrote the following code but for some reasons it places the first element always in the returning array even if it should not.
orderedArray = () => {
    let sortedArray = products
    if(this.state.interests.design && this.state.interests.code && this.state.interests.business)
        sortedArray.sort((a,b)=> (b.scores.quality-a.scores.quality))
    else if(this.state.interests.design && this.state.interests.code)
        sortedArray.sort((a,b) => (b.scores.quality*b.scores.relevancy.code*b.scores.relevancy.design/2)-(a.scores.quality*a.scores.relevancy.code*a.scores.relevancy.design/2))
    else if(this.state.interests.design && this.state.interests.business)
        sortedArray.sort((a,b) => (b.scores.quality*b.scores.relevancy.business*b.scores.relevancy.design/2)-(a.scores.quality*a.scores.relevancy.business*a.scores.relevancy.design/2))
    else if(this.state.interests.business && this.state.interests.code)
        sortedArray.sort((a,b) => (b.scores.quality*b.scores.relevancy.business*b.scores.relevancy.code/2)-(a.scores.quality*a.scores.relevancy.business*a.scores.relevancy.code/2))
    else if(this.state.interests.business)
        sortedArray.sort((a,b)=> (b.scores.quality*b.scores.relevancy.business-a.scores.quality*a.scores.relevancy.busines))
    else if(this.state.interests.code)
        sortedArray.sort((a,b)=> (b.scores.quality*b.scores.relevancy.code-a.scores.quality*a.scores.relevancy.code))
    else if(this.state.interests.design)
        sortedArray.sort((a,b)=> (b.scores.quality*b.scores.relevancy.design-a.scores.quality*a.scores.relevancy.design))
    console.log(JSON.stringify(sortedArray))
    return sortedArray
}
The idea is that if they selected design, business and code then the resulting array should be sorted by quality, otherwise my a mix of quality and the selected variables. Here is the data:
[
    {
        "name":"dasd",
        "scores": {
            "quality": 8,
            "relevancy": {
                "design": 3,
                "code": 9,
                "business": 5
            }
        },
        {...}
    }
    {...}
]
Whereas this.state is:
    this.state = {
        minutes: int,
        interests: {
                business: bool,
                code: bool,
                design: bool
        }
    }
 
    