سلام من دو تا آرایه دارم و میخوام با مقایسه این دو تا یه آرایه ای رو بوجود بیارم.
اولین آرایه که استاتیک هست و تغییری نمیکنه اینه:
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
@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));
});
با این کد به نتیجه رسیدم:
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))
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟