代码之家  ›  专栏  ›  技术社区  ›  Alain

类型错误:obj[key]。includes不是函数

  •  1
  • Alain  · 技术社区  · 6 年前

    这是请求(已更新):

    this._service.getPeople().subscribe((response) => {
     this.people = response;
    });
    

    方法如下:

    filterIt(arr: any, searchKey: any) {
            return arr.filter((obj: any) => {
              return Object.keys(obj).some((key) => {
                return obj[key].includes(searchKey);
              });
            });
          }
    

    我想要的结果是筛选表行,但得到的结果是:

    类型错误:obj[key]。includes不是函数

    我正在使用typescript2.7.2、Angular 6和mdbootstrap6.2.2(Angular)。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Alain    6 年前

    我自己刚刚找到了答案,问题是我有一个属性为空,这就是导致错误的原因,所以我只是转换了下面的方法,它的工作方式就像魅力!我希望这对别人有帮助。

    filterIt(arr: any, searchKey: any) {
        return arr.filter((obj: any) => {
          return Object.keys(obj).some((key) => {
            if (obj[key] !== null) {
              const tempKey = obj[key].toString().toLowerCase();
              const tempSearch = searchKey.toLowerCase();
              return tempKey.includes(tempSearch);
            }
          });
        });
      }
    
    推荐文章