日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dart - 如何制作新数组嵌套排序映射

發布時間:2025/3/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dart - 如何制作新数组嵌套排序映射 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天關注的人突然多了起來,為此繼續更新今天的第二篇

dart - 如何制作新數組嵌套排序映射?

我有一個看起來像這樣的數據塊:

var list = [{ id: '1', title: 'thing1', week: 1, day: 1 },{ id: '2', title: 'thing2', week: 1, day: 1 },{ id: '3', title: 'thing3', week: 1, day: 2 },{ id: '4', title: 'thing4', week: 1, day: 2 },{ id: '5', title: 'thing5', week: 1, day: 3 },{ id: '6', title: 'thing6', week: 1, day: 3 },{ id: '7', title: 'thing7', week: 2, day: 4 },{ id: '8', title: 'thing8', week: 2, day: 5 }, ];

我想要做的是將這個 List 轉換為輸出這個的東西:

var transformedList = [{ 'Week 1': [{ id: '1', title: 'thing1', day: 1, week: 1 },{ id: '2', title: 'thing2', day: 1, week: 1 },{ id: '3', title: 'thing3', day: 2, week: 1 },{ id: '4', title: 'thing4', day: 2, week: 1 },{ id: '5', title: 'thing5', day: 3, week: 1 },{ id: '6', title: 'thing6', day: 3, week: 1 },],'Week 2': [{ id: '7', title: 'thing7', day: 4, week: 2 },{ id: '8', title: 'thing8', day: 5, week: 3 },]} ]

到目前為止我嘗試過的是:

var programMap = Map.fromIterable(userProgramSteps, key: (k) => k.getWeek(), value: (v) => v);// handles the week port just fine, but very stuck on the list of days.

我對flutter和 Dart 很陌生,所以我有點迷茫…有人可以幫忙嗎?

最佳答案

尊重您之前(已刪除)的問題,這里的代碼:
data_weeks.dart

const week_data = [{ 'id': '1', 'week': 1, 'day': 1, 'title': 'thing1' },{ 'id': '2', 'week': 1, 'day': 1, 'title': 'thing2' },{ 'id': '3', 'week': 1, 'day': 1, 'title': 'thing3' },{ 'id': '4', 'week': 1, 'day': 2, 'title': 'thing4' },{ 'id': '5', 'week': 1, 'day': 2, 'title': 'thing5' },{ 'id': '6', 'week': 2, 'day': 3, 'title': 'thing6' },{ 'id': '7', 'week': 2, 'day': 4, 'title': 'thing7' }, ];

home_page.dart

import 'package:flutter/material.dart'; import 'package:list_cards/src/shared/data_weeks.dart';class HomePage extends StatelessWidget {/* ---------------------------------------------------------------------------- */const HomePage({Key key}) : super(key: key);/* ---------------------------------------------------------------------------- */@overrideWidget build(BuildContext context) {final data = getNewData();return Scaffold(appBar: AppBar(title: Text('Hi!'),centerTitle: true,),body: Padding(padding: const EdgeInsets.all(10.0),child: ListView.builder(itemCount: data.length,itemBuilder: (context, index) => ListTile(title: Text('Week ${data.keys.toList()[index]}', style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),),subtitle: getSubtitles1(data[data.keys.toList()[index]], context),),),),);}Widget getSubtitles1(List<Map<int, Object>> data, BuildContext context) {return Column(children: List.generate(data.length, (index) => ListTile(title: Text('DAY ${data[index].keys.toList()[0]}',style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold, color: Colors.black.withOpacity(0.4)),),subtitle: getSubtitles2(data[index][data[index].keys.toList()[0]], context),)),);}Widget getSubtitles2(List<String> data, BuildContext context) {final size = MediaQuery.of(context).size;return Column(children: List.generate(data.length, (index) => Card(elevation: 0,margin: EdgeInsets.all(0),child: Padding(padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 2),child: Row(children: [Container(width: (size.width + 80) / 2,child: Text(data[index]),),IconButton(icon: Icon(Icons.check_box_outline_blank), onPressed: () {}),],),),)),);}Map<int, Object> getNewData() {var weeks = week_data.map<int>((m) => m['week']).toSet().toList();var newData = Map<int, Object>();weeks.forEach((w) {newData[w] = week_data.where((m) => m['week'] == w).map<int>((m) => m['day']).toSet().map<Map<int, Object>>((e) => {e: week_data.where((m) => m['week'] == w && m['day'] == e).map<String>((m) => m['title']).toList()}).toList();});return newData;} }

結果:

關于您當前的問題,getNewData()方法包含您的答案的邏輯。好好享受!

總結

以上是生活随笔為你收集整理的dart - 如何制作新数组嵌套排序映射的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。