Vishal Shinde
Vishal Shinde

Reputation: 11

SonarQube issue expected an assignment or function call instead saw an expression

I am trying to count the number of selected items from array of object. I am facing

expected assignment or function call issue in sonarQube

Need some help to solve the issue.

const dataList = [
   { label: "test1", value: "test1", checked: true },
   { label: "test2", value: "test2", checked: false },
   { label: "test3", value: "test3", checked: true }];
     
const getSelectedCount2 = (dataList) => {
   let selectedItemCount = 0;
   dataList.forEach(item => item.checked ? selectedItemCount = selectedItemCount + 1 : "" );

   return selectedItemCount;
}

problematic line is

dataList.forEach(item => item.checked ? selectedItemCount = selectedItemCount + 1 : "" );`

Upvotes: 1

Views: 874

Answers (1)

Aziza Kasenova
Aziza Kasenova

Reputation: 1571

Returning an empty line in false part for ternary is what causes the error. You can simply increment selectedItemCount with if expression within the loop:

const getSelectedCount2 = (dataList) => {
    let selectedItemCount = 0;

    dataList.forEach(item => { 
        if (item.checked) { selectedItemCount++; }
    });

    return selectedItemCount;
}

or use it simply as:

const getSelectedCount2 = dataList => {
    return dataList.filter(item => item.checked).length;
}

Upvotes: 1

Related Questions