java - 基于Android Dart或Java中的键合并两个对象数组
问题描述
阵列 1
[{ id: "abdc4051", date: "2017-01-24" }, id: "abdc4052", date: "2017-01-22" }]
阵列 2
[{ id: "abdc4051", name: "ab" },{ id: "abdc4052", name: "abc" }]
我需要根据 id 合并这两个数组并使用 Java 或 Dart 获取它,请任何人帮忙:
[{ id: "abdc4051", date: "2017-01-24", name: "ab" },{ id: "abdc4052", date: "2017-01-22", name: "abc" }]
解决方案
List<Map<String, dynamic>> getMap() {
List<Map<String, dynamic>> listOne = [{ 'id': "abdc4051", 'date': "2017-01-24" }, {'id': "abdc4052", 'date': "2017-01-22" }];
List<Map<String, dynamic>> listTwo = [{ 'id': "abdc4051", 'name': "ab" },{ 'id': "abdc4052", 'name': "abc" }];
List<Map<String, dynamic>> result = listOne.map((e) => {
'id' : e['id'],
'date' : e['date'],
'name' : listTwo.where((element) => element['id'].toString().compareTo(e['id'].toString()) == 0)?.first['name'] ?? ''
}).toList();
return result;
}