ArkTs中如何合并两个Record - HarmonyOS 鸿蒙Next

ArkTs中如何合并两个Record - HarmonyOS 鸿蒙Next 如下代码,在ArkTs中会报错

function mergeRecord(){
  let r1:Record<string,string> ={"a":"1"}
  let r2:Record<string,string> ={"b":"2"}
  return {...r1,...r2}
}
4 回复

若需要在ets文件中扩展对象属性或合并两个对象时,可以自行实现assign方法,参考代码如下:

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)
    }
  }
  console.log('test', JSON.stringify(target))
  return target;
}

function mergeRecord(): Record<string, Object>  {
  let r1:Record<string,string> ={"a":"1"}
  let r2:Record<string,string> ={"b":"2"}
  return this.assign(r2, r1)
}

更多关于ArkTs中如何合并两个Record - HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


function mergeRecord(): Record<string, string> {
  let r1: Record<string, string> = { "a": "1" };
  let r2: Record<string, string> = { "b": "2" };
  return { ...r1, ...r2 };
}

类型注解

在ArkTS中,Record类型用于表示键值对的集合。要合并两个Record对象,可以使用Object.assign()方法或者展开运算符{...}。以下是两种方法的示例:

  1. 使用Object.assign()方法:
const record1: Record<string, number> = { a: 1, b: 2 };
const record2: Record<string, number> = { c: 3, d: 4 };
const mergedRecord = Object.assign({}, record1, record2);
// mergedRecord 结果为 { a: 1, b: 2, c: 3, d: 4 }
  1. 使用展开运算符{...}
const record1: Record<string, number> = { a: 1, b: 2 };
const record2: Record<string, number> = { c: 3, d: 4 };
const mergedRecord = { ...record1, ...record2 };
// mergedRecord 结果为 { a: 1, b: 2, c: 3, d: 4 }

这两种方法都可以将两个Record对象合并为一个新的Record对象。如果两个Record对象中有相同的键,后者会覆盖前者的值。

回到顶部