HarmonyOS 鸿蒙Next 怎么把两个 Map<string, object> 合并为一个

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 怎么把两个 Map<string, object> 合并为一个

怎么把 两个 Map<string, object> 合并为一个

2 回复
合并Object,可初始化一个Record<string, Object>对象,使用Object.entries方法进行遍历。在ets文件中可自行实现assign,使用Record<string, Object>结合for循环遍历
参考代码如下:
深色代码主题
复制
function assign(target: Record<string, Object>, ...source: Object[]): Record<string, Object> {
  for (const items of source) {
    for (const key of Object.keys(items)) {
      target[key] = Reflect.get(items, key)
    }
  }
  return target;
}

interface add { testadd: Object }

interface IMerge { a: add, b?: number, c?: string, }

let c: Record<string, Object> = { ‘testc’: ‘c’ }

let a: IMerge = { a: { testadd: 1 } } let b = assign(c, a); console.log('b is ’ + JSON.stringify(b));

更多关于HarmonyOS 鸿蒙Next 怎么把两个 Map<string, object> 合并为一个的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,你可以使用内置的工具类或方法将两个Map<string, object>合并为一个。以下是一个简洁的实现方式:

import 'dart:collection';

Map<String, Object> mergeMaps(Map<String, Object> map1, Map<String, Object> map2) {
  Map<String, Object> mergedMap = HashMap.from(map1);
  map2.forEach((key, value) {
    mergedMap[key] = value;
  });
  return mergedMap;
}

void main() {
  Map<String, Object> map1 = {"key1": "value1", "key2": "value2"};
  Map<String, Object> map2 = {"key2": "newValue2", "key3": "value3"};
  
  Map<String, Object> mergedMap = mergeMaps(map1, map2);
  print(mergedMap); // 输出: {key1: value1, key2: newValue2, key3: value3}
}

在这个例子中,我们定义了一个mergeMaps函数,该函数接收两个Map<String, Object>类型的参数,并返回一个新的合并后的Map。如果map2中的键在map1中已经存在,则map2中的值会覆盖map1中的值。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部