Dictionary Dart-如何获取多个输出值并与单个值相乘?

Dictionary Dart-如何获取多个输出值并与单个值相乘?,dictionary,dart,Dictionary,Dart,这是我自学成才的第一个项目,飞镖/颤振/编码之路 我想做一个动物年龄计算器。基本上,用户将从一组动物中选择一只动物,并给出该动物的年龄,代码将输出与其他动物的相对年龄 我有很多(我想)带有键:值对的映射。每个地图都有一对k:v(动物及其相应的年龄比)。例如,如果用户选择“dog”,代码将返回dogMap和熊、猫、鸡、大象、人和兔子的比值 我可以得到比率值,但我一直试图用这些值来计算相对年龄 这是地图- var dogAgeRatio = {'dogTobear': 0.55, 'dogTocat

这是我自学成才的第一个项目,飞镖/颤振/编码之路

我想做一个动物年龄计算器。基本上,用户将从一组动物中选择一只动物,并给出该动物的年龄,代码将输出与其他动物的相对年龄

我有很多(我想)带有键:值对的映射。每个地图都有一对k:v(动物及其相应的年龄比)。例如,如果用户选择“dog”,代码将返回dogMap和熊、猫、鸡、大象、人和兔子的比值

我可以得到比率值,但我一直试图用这些值来计算相对年龄

这是地图-

var dogAgeRatio = {'dogTobear': 0.55, 'dogTocat': 0.88, 'dogTochicken': 1.47, 'dogToelephant': 0.31, 'dogTohuman': 0.28, 'dogTorabbit': 2.44};
这是我到目前为止得到的值-

if(animalName == "dog") {
    print("these are the relatve animal ages: ${dogAgeRatio.values}");
如果能给我一个指针,告诉我应该如何使用这些值,并应用计算来返回所有其他动物的相对年龄,我会很感激的

提前谢谢


Cal

我不确定我是否正确理解了您,但您可以使用以下内容:

dogAgeRatio.values.forEach((element) { print(element * dogage);});

它基本上会在地图的每个项目上迭代,并打印出与狗的年龄相乘的值。

有不同的方法可以做到这一点,但简单的方法是这样的,我们有一个
地图来表示我们的比较:

import 'dart:io';

void main() {
  final animalMap = {
    'dog': {
      'bear': 0.55,
      'cat': 0.88,
      'chicken': 1.47,
      'elephant': 0.31,
      'human': 0.28,
      'rabbit': 2.44
    },
    'alien': {
      'human': 100
    }
  };

  print('Please enter one of the following animals:');
  print('==========================================');
  animalMap.keys.forEach(print);
  print('==========================================');

  final animalInput = stdin.readLineSync();
  if (animalInput != null && animalMap.containsKey(animalInput)) {
    print('Enter age of animal:');
    final age = int.parse(stdin.readLineSync()!);

    print('Age compared to different animals:');
    print('==========================================');
    animalMap[animalInput]!.entries.forEach((element) =>
        print('${element.key} => ${element.value * age} years old.'));
    print('==========================================');
  } else {
    print('Wrong animal!');
  }
}
所以第一个关键是起始动物,子地图是我们如何从起始动物年龄到次级动物


我已将我的解决方案制作成一个互动式,只是为了好玩。:)

thx@julemand101,这是一个相当全面的答案。给我几周时间,我可能会明白发生了什么。我会回到它的肯定和使用它来比较和改进我自己的尝试。Thanks@CStep如果你想让我更详细地解释解决方案的某些部分,就说吧。是的,对于初学者来说阅读这段代码是很困难的,因为我使用了一些快捷方式来缩短代码,但是这些快捷方式并不明显。我还可以重新编写解决方案,以更详细地划分每个步骤。thx,你帮了我很大的忙。我可以从你的解决方案中选择一部分,然后(通过反复试验)适应我自己的解决方案。对我来说,这感觉像是一个小小的胜利。@Danzon2504-在问了我的问题后,我能够进一步验证我的谷歌搜索,并得到了类似的结果-
var selectedList=dogAgeRatio.values.toList()-后跟-`for(selectedList中的双项目){print(item*howled);}'-感谢您的回复。一旦我完成了这个项目,我会努力把你的建议包括进去。再次感谢。