Array.prototype.filter() 期望在箭头函数的末尾返回一个值

时间:2021-03-21 22:20:10

标签: javascript reactjs

const filterProducts = (products, starNumbers) => {

let tempProducts = [...products]

if(starNumbers.length > 0) {

tempProducts = tempProducts.filter(x => {
         for(let num of starNumbers){
          if(x.averageRating >= num && x.averageRating < num + 1 ){
            return x
          }
        }

      })
}

return tempProducts
}

products 是一个对象数组,starNumbers 是一个数字数组 我希望得到一个过滤的产品数组(如果 starNumbers = [4, 5] 我想要得到平均评级 = 4 和 5 的产品)

我需要进行哪些更改才能避免出现此警告?

1 个答案:

答案 0 :(得分:-1)

filter 函数需要一个布尔值作为返回值,因此您需要返回的只是 if 语句中已有的内容

tempProducts = tempProducts.filter(x => {
   let match = false;
   for(let num of starNumbers){
       if ( x.averageRating >= num && x.averageRating < num +1) {
          match = true;
        }
    }
    return match;
  })

查看方法的文档here