首页 > 解决方案 > Dart 需要通过定价来过滤数组

问题描述

我有这样的简单数据

{ID: 1195, SubCategoryID: 87, Name: Fajita Pizza (S), Price: 199.0}, {ID: 1195, SubCategoryID: 87, Name: Fajita Pizza (S), Price: 299.0}

我正在使用 RangeSlider 来获取用户的范围

              RangeSlider(
                values: _currentRangeValues,
                min: 1,
                max: 10000,
                divisions: 100,
                labels: RangeLabels(
                  _currentRangeValues.start.round().toString(),
                  _currentRangeValues.end.round().toString(),
                ),
                onChanged: (RangeValues values) {
                  setState(() {
                    _currentRangeValues = values;
                    print(_currentRangeValues);
                  });
                },
              ),

范围是这样打印的,RangeValues(1.0, 8400.16)我需要用我的数据过滤这个范围。所以我把那个产品放在一个价格在 RangeValues 之间的数组中

标签: flutterdart

解决方案


我不确定这是否是您打算做的,但正如@pskink 所说,您可以使用 List.where 按范围过滤您的产品列表:

double minPrice = 200;
double maxPrice = 300;
filteredProducts = products.where((element) {
  return (element["Price"]>minPrice && element["Price"]<maxPrice);
}).toList();
log(filteredProducts.toString());

推荐阅读