Parastoo Ebrahimi
4 سال پیش توسط Parastoo Ebrahimi مطرح شد
2 پاسخ

فیلتر کردن با مقایسه دو آرایه

سلام من دو تا آرایه دارم و میخوام با مقایسه این دو تا یه آرایه ای رو بوجود بیارم.
اولین آرایه که استاتیک هست و تغییری نمیکنه اینه:

 let cols = [
            { field: 'name', header: 'Name' },
            { field: 'apn', header: 'Barcode' },
            { field: 'directNumber', header: 'Direct #' },
            { field: 'itemNumber', header: 'Item Number' },
            { field: 'plu', header: 'PLU' },
            { field: 'price', header: 'Price' },
            { field: 'labelShelfQty', header: 'Shelf Qty' },
            { field: 'Small', header: 'Small' }
        ]

دومین آرایه که داینامیک هست و بر اساس انتخاب کاربر هست مقادیرش به صورت زیره:

columns:
["itemNumber", "directNumber", "apn", "name"]

میخوام توی آرایه ی cols فقط آیتم هایی فیلتر بشن که field اونها برابر با آرایه columns هست.. ممنون میشم کمک کنید.
@sinashahoveisi
@hesammousavi
@mohsenbostan


ثبت پرسش جدید
محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش آپدیت شد
1

@parastooebrahimi
سلام.
با استفاده از کد زیر می تونید انجام بدید:

let filtered = [];

let cols = [
    { field: 'name', header: 'Name' },
    { field: 'apn', header: 'Barcode' },
    { field: 'directNumber', header: 'Direct #' },
    { field: 'itemNumber', header: 'Item Number' },
    { field: 'plu', header: 'PLU' },
    { field: 'price', header: 'Price' },
    { field: 'labelShelfQty', header: 'Shelf Qty' },
    { field: 'Small', header: 'Small' }
];

let b = ["itemNumber", "directNumber", "apn", "name"];

b.forEach( a => {
    filtered.push(cols.filter(col => col.field === a));
});

Parastoo Ebrahimi
تخصص : front-end developer
@parastooebrahimi 4 سال پیش مطرح شد
0

با این کد به نتیجه رسیدم:

  let cols = [
            { field: 'name', header: 'Name' },
            { field: 'apn', header: 'Barcode' },
            { field: 'directNumber', header: 'Direct #' },
            { field: 'itemNumber', header: 'Item Number' },
            { field: 'plu', header: 'PLU' },
            { field: 'price', header: 'Price' },
            { field: 'labelShelfQty', header: 'Shelf Qty' },
            { field: 'Small', header: 'Small' }
        ].filter(item => this.state.columns.some(y => y == item.field))

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام