Javascript 如何操作。切片显示筛选函数的前3个结果

Javascript 如何操作。切片显示筛选函数的前3个结果,javascript,arrays,sorting,filter,slice,Javascript,Arrays,Sorting,Filter,Slice,我想通过.slice函数显示前3个结果 如何做后过滤功能 我尝试在filter函数中的匹配后添加.slice,但它没有正常工作 下面是代码 filteredEntitySearch () { let entity = this.options return entity.filter((entity) => { return entity.name.match(this.searchQuery).slice(0, 4) }) },

我想通过.slice函数显示前3个结果

如何做后过滤功能

我尝试在filter函数中的匹配后添加.slice,但它没有正常工作

下面是代码

filteredEntitySearch () {
      let entity = this.options
      return entity.filter((entity) => {
        return entity.name.match(this.searchQuery).slice(0, 4)
      })
    },
对于某些上下文主要功能(filteredEntitySearch)是为

  • 使用搜索查询获取所有匹配实体(searchQuery)
  • 显示前三名结果

谢谢你的帮助

在这里,过滤后会得到结果(17个元素),但只显示前3个元素
var arr=[1,2,3,4,5,6,7,6,5,5,5,4,4,3,3,22,2,2,1,1,4,5,6,77]

console.log(arr.filter(e=>e>3).slice(0,3))
将其移到过滤器外:

filteredEntitySearch () {
      let entity = this.options
      return entity.filter((entity) => {
        return entity.name.match(this.searchQuery);
      }).slice(0, 3);
}

你犯了几个错误

  • 为了更好地理解,筛选器函数参数名称不应与数组名称相同
  • 切片函数在错误的位置使用
  • 如果希望得到3个结果,slice参数应该是slice(0,3)
  • 您的代码应该如下所示:

    filteredEntitySearch () {
          let entities = this.options
          return entities.filter((entity) => {
            return entity.name.match(this.searchQuery)
          }).slice(0, 3)
        },
    

    如果我想给它添加超时怎么办?