在Dart/Flutter中,可以使用以下方法基于一个键合并两个对象数组:
Map mergeArrays(List<Map> array1, List<Map> array2, String key) {
Map mergedMap = {};
// 合并逻辑将在下面实现
return mergedMap;
}
for (var obj in array1) {
var keyValue = obj[key];
mergedMap[keyValue] = obj;
}
for (var obj in array2) {
var keyValue = obj[key];
if (mergedMap.containsKey(keyValue)) {
mergedMap[keyValue] = {...mergedMap[keyValue], ...obj};
} else {
mergedMap[keyValue] = obj;
}
}
return mergedMap;
这样,你就可以使用上述方法在Dart/Flutter中基于一个键合并两个对象数组了。
以下是一个完整的示例代码:
Map mergeArrays(List<Map> array1, List<Map> array2, String key) {
Map mergedMap = {};
for (var obj in array1) {
var keyValue = obj[key];
mergedMap[keyValue] = obj;
}
for (var obj in array2) {
var keyValue = obj[key];
if (mergedMap.containsKey(keyValue)) {
mergedMap[keyValue] = {...mergedMap[keyValue], ...obj};
} else {
mergedMap[keyValue] = obj;
}
}
return mergedMap;
}
void main() {
List<Map> array1 = [
{'id': 1, 'name': 'John'},
{'id': 2, 'name': 'Jane'},
];
List<Map> array2 = [
{'id': 1, 'age': 25},
{'id': 3, 'age': 30},
];
String key = 'id';
Map mergedArray = mergeArrays(array1, array2, key);
print(mergedArray);
}
输出结果为:
{1: {id: 1, name: John, age: 25}, 2: {id: 2, name: Jane}, 3: {id: 3, age: 30}}
这个方法可以在需要合并两个对象数组并基于一个键进行关联的情况下使用,例如在数据处理、数据分析、数据展示等场景中。
领取专属 10元无门槛券
手把手带您无忧上云