首页 > 解决方案 > 基于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" }]

标签: javaandroidandroid-studioflutterdart

解决方案


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;
}

推荐阅读