代码之家  ›  专栏  ›  技术社区  ›  mishalhaneef

如何从dart中的列表中添加两个值

  •  1
  • mishalhaneef  · 技术社区  · 4 年前

    这是比萨饼的价格单

      const pizzaPrices = {
        'margherita': 5.5,
        'pepperoni': 7.5,
        'vegetarian': 6.5,
      };
    

    如何计算给定订单的总额。 如果是玛格丽特和意大利香肠,那么应该是13美元。

    const order = ['margherita', 'pepperoni'];
    

    如何添加到列表中

    4 回复  |  直到 4 年前
        1
  •  2
  •   bhagavati antala    4 年前
      const pizzaPrices = {
        'margherita': 5.5,
        'pepperoni': 7.5,
        'vegetarian': 6.5,
      };
      const order = ['margherita', 'pepperoni'];
      var total=0.0;
      order.forEach((item){
        total+=pizzaPrices[item]??0.0;  
      });
      print("Total : "+total.toString());
    
        2
  •  2
  •   mmcdon20    4 年前

    有几种方法可以计算总数。一种方法是使用 fold

    final total =
        order.fold<double>(0.0, (prev, elem) => prev + pizzaPrices[elem]!);
    

    另一种方法是循环检查订单,并按要求将总数相加:

    var total = 0.0;
    for (final elem in order) {
      total += pizzaPrices[elem]!;
    }
    

    为了添加到您的列表中,您可以调用 add 列表中的方法:

    order.add('vegetarian');
    

    但是, const 无法修改列表,因此您必须进行更改 order 宣布为 final var :

    final order = ['margherita', 'pepperoni'];
    
        3
  •  2
  •   Manishyadav    4 年前

    因此,如果您使用它,就不必定义自己的“fold”函数。

    var sum = [1, 2, 3].reduce((a, b) => a + b);
    

    您可以访问此网站以获得更清晰的信息, https://github.com/dart-lang/sdk/issues/1649

    num sum = 0;
    for (num e in [1,2,3]) {
      sum += e;
    }
    
        4
  •  0
  •   bhagavati antala    4 年前
      const pizzaPrices = {
        'margherita': 5.5,
        'pepperoni': 7.5,
        'vegetarian': 6.5,
      };
      const order = ['margherita', 'pepperoni'];
      
      var total=0.0;
      order.forEach((item){
         pizzaPrices.forEach((name,price){
           if(name==item){
             total=total+price;
           }
         });
      });
      
      print("Total : "+total.toString());
      
    
        5
  •  0
  •   userlond    4 年前
    void main() {
      const pizzaPrices = {
        'margherita': 5.5,
        'pepperoni': 7.5,
        'vegetarian': 6.5,
      };
    
      var x = pizzaPrices['margherita'];
      var y = pizzaPrices['pepperoni'];
    
      List xy = [];
    
      xy.add(x);
      xy.add(y);
    
      double somme = 0;
    
      xy.forEach((var element) => somme += element);
    
      print(somme);
    }