Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要再添加一列';姓氏';用于过滤器。如果在以下代码的数据源中可用。角度数据表_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 需要再添加一列';姓氏';用于过滤器。如果在以下代码的数据源中可用。角度数据表

Javascript 需要再添加一列';姓氏';用于过滤器。如果在以下代码的数据源中可用。角度数据表,javascript,angular,typescript,Javascript,Angular,Typescript,因此,我知道您要做的是根据下面的值筛选一些数组,如下面的示例所示: 现在我们可以看到一个模式在重复,我们可以概括: 请扩展您的问题并格式化您的代码。我不知道你想要什么。。。 private performFilter(filterBy: string) { filterBy = filterBy.toLocaleLowerCase(); --- returning value return this.dataSource.filter(

因此,我知道您要做的是根据下面的值筛选一些数组,如下面的示例所示:



现在我们可以看到一个模式在重复,我们可以概括:


请扩展您的问题并格式化您的代码。我不知道你想要什么。。。
private performFilter(filterBy: string) {    
filterBy = filterBy.toLocaleLowerCase();
    --- returning value
        return this.dataSource.filter(
          (data: any) =>
           data.FirstName ? data.FirstName.toLocaleLowerCase().indexOf(filterBy) !== -1 : ""
        );
 }
class Foo {
    public dataSource: {
        FirstName: string;
        LastName: string;
    }[] = [{
        FirstName: 'Obiwan',
        LastName: 'Kenobi',
        }, {
         FirstName: 'Bob',
        LastName: 'Franklin',
    }, {
         FirstName: 'Anakin',
        LastName: 'skywalker',
    }];

    public performFilter(filterBy: string) {
        const toFilterBy = filterBy.toLocaleLowerCase();

        return this.dataSource.filter((data) => {
            // Check for FirstName
            if (data.FirstName && data.FirstName.toLocaleLowerCase().indexOf(toFilterBy) !== -1) {
                return true;
            }

            // Check for LastName
            if (data.LastName && data.LastName.toLocaleLowerCase().indexOf(toFilterBy) !== -1) {
                return true;
            }

            return false;
        });
    }
}

const foo = new Foo();

console.log('------- Before', foo.dataSource);

console.log('------- After', foo.performFilter('Obiwan'));
type DataSource = {
    FirstName: string;
    LastName: string;
};

class Foo {
    public dataSource: DataSource[] = [{
        FirstName: 'Obiwan',
        LastName: 'Kenobi',
        }, {
         FirstName: 'Bob',
        LastName: 'Franklin',
    }, {
         FirstName: 'Anakin',
        LastName: 'skywalker',
    }];

    public performFilter(filterBy: string) {
        const toFilterBy = filterBy.toLocaleLowerCase();

        return this.dataSource.filter((data: DataSource) => ([
            'FirstName',
            'LastName',
        ] as (keyof DataSource)[]).some(x => data[x] && data[x].toLocaleLowerCase().indexOf(toFilterBy) !== -1));
    }
}

const foo = new Foo();

console.log('------- Before', foo.dataSource);

console.log('------- After', foo.performFilter('Obiwan'));