首页 > 解决方案 > SonarQube 问题需要一个赋值或函数调用,而不是看到一个表达式

问题描述

我正在尝试从对象数组中计算所选项目的数量。我面对

sonarQube 中的预期分配或函数调用问题

需要一些帮助来解决问题。

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;
}

有问题的线是

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

标签: javascriptsonarqubesonarqube-scan

解决方案


部分返回空行false是导致错误的原因。您可以简单地在循环中selectedItemCount使用表达式递增:if

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

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

    return selectedItemCount;
}

或将其简单地用作:

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

推荐阅读