HarmonyOS 深拷贝关于list类型如何处理?

目前ArkTS不支持any类型,没办法在ets中写深拷贝逻辑,但是在ts文件中写深拷贝时,list数据类型又不支持,如何处理?

HarmonyOS
2024-11-25 12:02:16
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
put_get

参考:

function deepCopy(obj: ESObject): ESObject { 
  if (typeof obj !== "object" || obj === null) { 
    return obj; 
  } 
 
  let copy: ESObject; 
  if (Array.isArray(obj)) { 
    copy = []; 
    for (let i = 0; i < obj.length; i++) { 
      copy[i] = deepCopy(obj[i]); 
    } 
  } else { 
    copy = {}; 
    for (let i = 0; i < obj.length(); i++) { 
      let key:ESObject=obj[i]; 
      if (obj.hasOwnProperty(key)) { 
        copy[key] = deepCopy(obj[key]); 
      } 
    } 
  } 
  return copy; 
} 
let arr1:Array<number> = new Array<number>(1, 2, 3); 
let arr2:Array<number> = deepCopy(arr1); 
arr2[2] = 4; 
 
console.log('arr1: '+String(arr1)); 
console.log('arr2: '+String(arr2));
  • 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.
  • 26.
  • 27.
  • 28.
分享
微博
QQ
微信
回复
2024-11-25 16:45:17


相关问题
HarmonyOS拷贝拷贝
1062浏览 • 1回复 待解决
HarmonyOS pixelmap拷贝问题
1398浏览 • 1回复 待解决
HarmonyOS 对象实现拷贝
999浏览 • 1回复 待解决
HarmonyOS 如何对数组进行拷贝
1008浏览 • 1回复 待解决
HarmonyOS image的pixelmap如何进行拷贝
529浏览 • 1回复 待解决
HarmonyOS ArkWeb组件是否支持拷贝
1348浏览 • 2回复 待解决
ArkWeb组件是否支持拷贝
1390浏览 • 1回复 待解决
ArkTS中如何实现对象的拷贝
1505浏览 • 1回复 待解决
HarmonyOS 如何处理axios请求
663浏览 • 1回复 待解决
HarmonyOS 大整数如何处理
997浏览 • 1回复 待解决
HarmonyOS css如何处理safe area
671浏览 • 1回复 待解决
HarmonyOS 访问控制授权申请如何处理
474浏览 • 1回复 待解决
HarmonyOS应用如何处理用户权限请求?
826浏览 • 0回复 待解决
HarmonyOS 图片上传文件过大如何处理
605浏览 • 1回复 待解决
鸿蒙应用如何处理异步请求?
783浏览 • 0回复 待解决
如何处理Redis的内存优化?
3368浏览 • 1回复 待解决
应用线程过多时如何处理
2436浏览 • 1回复 待解决
路由循环跳转如何处理
64浏览 • 0回复 待解决