如何在ArkTS中合并对象

如何在ArkTS中合并对象

HarmonyOS
2024-06-11 20:17:31
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
每天睡满八小时

ArkTS不支持Object.assign,需要自实现功能或者在TS文件中导出对应工具函数。

1. 业务侧在TS文件中封装工具方法:

// ts 
export class ObjectUtil { 
  static Assign<T extends {}, U>(target: T, source: U): T & U{ 
    return Object.assign(target, source); 
  } 
} 
 
//ets使用 
const target: Record<string, Object> = { "a": 1, "b": 2, }; 
const source: Record<string, Object> = { "b": 4, "c": 5, } 
const returnedTarget = ObjectUtil.Assign(target, source); 
 
console.log(JSON.stringify(target)) 
// Expected output: Object {"a":1,"b":4,"c":5}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

2. 业务侧封装实现assign方法:

function assign(target: Record<string, Object>, ...source: Object[]): Record<string, Object> { 
  for (let s of source) { 
    for (let k of Object.keys(s)) { 
      target[k] = Reflect.get(s, k) 
    } 
  } 
  return target 
} 
 
class D { 
  b: number 
  c: number 
 
  constructor(v1:number, v2:number) { 
    this.b = v1; 
    this.c = v2; 
  } 
} 
 
const target: Record<string, Object> = { "a": 1, "b": 2, } 
const source: D = new D(4,5) 
const returnedTarget: Record<string, Object> = assign(target, source) 
 
console.log(JSON.stringify(target)) 
// Expected output: Object {"a":1,"b":4,"c":5}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
分享
微博
QQ
微信
回复
2024-06-12 16:53:19
相关问题
如何在ArkTS合并对象
2504浏览 • 1回复 待解决
json如何在ArkTS解析到Array对象
1029浏览 • 2回复 待解决
HarmonyOS 关于合并对象
667浏览 • 2回复 待解决
HarmonyOS 如何合并两个对象
953浏览 • 1回复 待解决
如何在Native侧释放ArkTS对象
3162浏览 • 1回复 待解决
有谁知道如何合并两个对象
3545浏览 • 1回复 待解决
如何在C/C++ 创建ArkTS对象
3489浏览 • 1回复 待解决
ArkTS如何实现对象的深拷贝?
1879浏览 • 1回复 待解决
ArkTs如何获取对象的类名
3615浏览 • 1回复 待解决
如何在Native侧构建一个ArkTS对象
3129浏览 • 1回复 待解决
HarmonyOS type如何合并
796浏览 • 1回复 待解决
如何在ArkTS处理异常?
1457浏览 • 0回复 待解决
如何在ArkTS实现接口?
1991浏览 • 1回复 待解决
ArkTS如何使用字典类型的对象
1506浏览 • 1回复 待解决
如何在ArkTS动态加载so
1602浏览 • 1回复 待解决
ArkTS对象绑定的C++对象如何回收?
1713浏览 • 1回复 待解决
如何在 ArkTS 定义和使用接口?
1003浏览 • 0回复 待解决