Custom pipe to sort array of array

前端 未结 1 1466
天涯浪人
天涯浪人 2021-01-28 16:30

I have a array of array having two elements each, i.e. arr[a[2]]. Index 0 is name and index 1 is size . I want a pipe to sort the array of array according to size i

相关标签:
1条回答
  • 2021-01-28 17:25

    It's not a good idea to use a pipe for sorting. See the link here: https://angular.io/guide/pipes#appendix-no-filterpipe-or-orderbypipe

    Rather, add code in your component to perform your sort.

    Here is an example. This one filters, but you could change it to sort instead.

    import { Component, OnInit } from '@angular/core';
    
    import { IProduct } from './product';
    import { ProductService } from './product.service';
    
    @Component({
        templateUrl: './product-list.component.html'
    })
    export class ProductListComponent implements OnInit {
    
        _listFilter: string;
        get listFilter(): string {
            return this._listFilter;
        }
        set listFilter(value: string) {
            this._listFilter = value;
            this.filteredProducts = this.listFilter ? this.performFilter(this.listFilter) : this.products;
        }
    
        filteredProducts: IProduct[];
        products: IProduct[] = [];
    
        constructor(private _productService: ProductService) {
    
        }
    
        performFilter(filterBy: string): IProduct[] {
            filterBy = filterBy.toLocaleLowerCase();
            return this.products.filter((product: IProduct) =>
                  product.productName.toLocaleLowerCase().indexOf(filterBy) !== -1);
        }
    
        ngOnInit(): void {
            this._productService.getProducts()
                    .subscribe(products => {
                        this.products = products;
                        this.filteredProducts = this.products;
                    },
                        error => this.errorMessage = <any>error);
        }
    }
    
    0 讨论(0)
提交回复
热议问题