0

我拥有的选项示例: 样品 2

我有 2 个列表,第一个名为选项:

List<String> _options = [
    'Arts & entertainment',
    'Biographies & memoirs',
    ...
  ];

和另一个名称_isOptionSelected:

List<bool> _isOptionSelected = [
    false,
    false,
    ..
  ];

我试图从这两个列表中生成一个地图。

我尝试过的是:

 Map<String, Map<String, dynamic>> _isOptionMap = {
      'Arts & entertainment': {
        'optionName': 'Arts & entertainment',
        'isOptionSelected': false,
      },
      'Biographies & memoirs': {
        'optionName': 'Biographies & memoirs',
        'isOptionSelected': false,
      },

      ..
    };

然后打印它:

for (int i = 0; i < _isChoiceChipSelected.length; i++) {
      _isOptionMap[_options[i]]['isOptionSelected'].update(
          _options[i],
          (value) => _isOptionMap[_options[i]]
              ['isOptionSelected']);
    }
    print(_isOptionMap);

是逻辑问题吗?我在做什么呢?

4

1 回答 1

1

你好,这段代码创建了一张你想要的地图。

请注意,“_options”和“_isOptionSelected”列表必须具有相同的长度。

void main() {
  List<String> _options = [
    'Arts & entertainment',
    'Biographies & memoirs',
  ];
  
  List<bool> _isOptionSelected = [
    false,
    false,
  ];
  
  Map m = {};
  
  _options.asMap().entries.forEach((entry) {
    int idx = entry.key;
    String val = entry.value;
    
    Map m1 = {
      'optionName': val,
      'isOptionSelected': _isOptionSelected[idx]
    };
    
    m[val] = m1;
  });
    
  print( m );
}
于 2021-04-09T15:51:16.303 回答