首页 > 解决方案 > 使用带有切片数组方法的过滤器不起作用

问题描述

我有一个搜索输入,用于过滤表格中显示的一组用户。该表包括分页,因此我使用 .slice 让 10 个用户在每页的表上显示。出于某种原因,如果我在第 1 页,搜索过滤就会起作用(猜测是因为第 1 页上没有切片?);转到另一个页面后,过滤停止工作,这与 .slice 有关,因为如果我删除 .slice 代码,它就可以工作。任何想法为什么会这样?有一些我在这里没有看到的东西..

tableData() {
      return this.users
        .filter(
          (user) =>
            user.firstName.toLowerCase().includes(this.search.toLowerCase()) ||
            user.lastName.toLowerCase().includes(this.search.toLowerCase()) ||
            user.email.toLowerCase().includes(this.search.toLowerCase()),
        )
        .slice(this.perPage * (this.currentPage - 1), this.perPage * this.currentPage);
    },

标签: javascriptarraysvue.jsfrontend

解决方案


这是因为您的结果现在位于第一页或之前的某个位置。

您正在对结果进行切片。


推荐阅读