首页 > 解决方案 > 如何使用数组的每个成员作为参数来搜索字符串

问题描述

我想使用数组的每个成员搜索字符串

我可以使用 .includes() 按字符串搜索字符串,但想发送一个字符串数组并按每个成员搜索

// 当前搜索整个字符串

let lsearchText = this.config.searchText.toLowerCase()
a.Categories.toString().toLowerCase().includes(lsearchText)

// 我想分别搜索拆分数组的每个成员

let lsearchText = this.config.searchText.toLowerCase().split(' ');
a.Categories.toString().toLowerCase().includes(lsearchText)

我收到错误

error TS2345: Argument of type 'string[]' is not assignable to parameter of type 'string'.

我的全部功能

get filteredAlbumListArray() {
        if (this.config.searchText && this.config.searchText.length > 1) {
            let lsearchText = this.config.searchText.toLowerCase().split(' ');
            return this.albumList.filter((a) =>



                a.Frequency.toLowerCase().includes(lsearchText)
                ||
                a.Year.toString().toLowerCase().includes(lsearchText)
                ||
                a.Title.toLowerCase().includes(lsearchText)
                ||
                a.Categories.toString().toLowerCase().includes(lsearchText)
                ||
                a.Description.toLowerCase().includes(lsearchText)
                ||
                a.FieldNames.replace(/_/g, ' ').toLowerCase().includes(lsearchText)

            );
        }
        return this.albumList;
    }

因此,如果我输入 Weekly 2019 id 希望返回既是 Weekly 又是 2019 的结果

标签: javascriptangular

解决方案


尝试这样的事情

const lsearchTexts: string[] = this.config.searchText.toLowerCase().split(' ');
lsearchTexts.some(lsearchText => a.Categories.toString().includes(lsearchText));

推荐阅读