根据其值将列表数据添加到另一个列表

时间:2020-06-01 03:21:25

标签: flutter dart

我有一个列表:

    List<MenuItem> makanan = [
  MenuItem(
    gambarMenu: Image.asset('images/nasigoreng.jpeg'),
    namaMenu: 'Nasi Goreng',
    priceMenu: 'Rp. 15.000',
    qty: 0,
    note: 'Catatan',
  ),
  MenuItem(
    gambarMenu: Image.asset('images/mie goreng.jpeg'),
    namaMenu: 'Mie Goreng',
    priceMenu: 'Rp. 15.000',
    qty: 0,
    note: 'Catatan',
  ),
  MenuItem(
    gambarMenu: Image.asset('images/nasigoreng.jpeg'),
    namaMenu: 'Mie Kuah',
    priceMenu: 'Rp. 15.000',
    qty: 0,
    note: 'Catatan',
  ),
  MenuItem(
    gambarMenu: Image.asset('images/nasigoreng.jpeg'),
    namaMenu: 'Nasi Campur',
    priceMenu: 'Rp. 15.000',
    qty: 0,
    note: 'Catatan',
  ),
  MenuItem(
    gambarMenu: Image.asset('images/nasigoreng.jpeg'),
    namaMenu: 'Bakso Komplit',
    priceMenu: 'Rp. 15.000',
    qty: 0,
    note: 'Catatan',
  ),
];

也有我想要从以前的列表中列出的模型,例如:

class TableOrder {
  String namaMakanan;
  int qtyMakanan;
  String noteMakanan;

  TableOrder({this.namaMakanan, this.qtyMakanan, this.noteMakanan});
}

如何根据前一个列表的数量将数据从新列表中获取,如果数量大于0,则数据将被添加到新列表中。

2 个答案:

答案 0 :(得分:1)

您可以像这样使用List.where和List.map:

final List<TableOrder> newList = makanan
  .where((item) => item.qty > 0)
  .map((item) => TableOrder(namaMakanan: item.namaMenu, ...))
  .toList();

答案 1 :(得分:0)

使用列表的where方法

List<MenuItem> newMakanan = makanan.where((item) => item.qty > 0).toList();

docs here

相关问题